在一次工作中,有这么一个问题,就是要导入的数据字段不确定,但是还想使用django的ORM来对数据进行操作。。 琢磨了许久,弄个不完善的方案,但功能是能实现的,主要是思路。废话不多说了,丑陋的展示一下吧。。。
from django.db import connection
#粗陋的用数组和字符串表示一下要导入的数据表单项lis = ['ll', 'bb', 'yy']   #表示要建立的表单字段l = 'tablename'  #表名ll = 'fff'

new_table = connection.cursor() #获得游标,因为要在Django中使用原生sql语句。。。
# 创建表new_table.execute("create table %s (id INT NOT NULL primary key )"%l)  #先创建一个表,并定义主键
# 添加表元素 for i in lis:     new_table.execute("alter table %s ADD %s varchar(40)"%(l,i)) #向表中插入字段,循环方式添加(图方便,全都定义字符串型)。
# 向表内写入数据new_table.execute('insert into %s (%s,%s,%s) values("gg1","gg2","gg3")'%(l,lis[0],lis[1],lis[2]))  #通过xldr读的xlsx,xls文件,遍历导入即可。。
## 删除
# new_table.execute("drop table tablename")# 将生成的数据通过语句反写回去 ######  在view.py中 加入以下两条语句,便可将使用原生SQL语句导入数据库中的数据进行反写。 python manage.py inspectdb > datatools/models.py ####### os.system('python manage.py inspectdb > datatools/models.py')
# 动态调用新添加的表名
# k=l.title()  # 首字母大写,因为model中类名首字母必须大写,自动反写后,表名首字母为大写
##动态的调用models.py中的表# get_models = hasattr(datatools.models,k)
# if get_models:
#     cls = getattr(datatools.models,k)
#     bb = cls.objects.all()
#     print(bb)

转载于:https://www.cnblogs.com/sly27/p/10987203.html

django 使用原生SQL语句反向生成MODELS.PY中的表结构相关推荐

  1. django执行原生SQL语句

    1.原生SQL用法概述 django可以执行原生SQL语句,主要分读和写两类,用法如下: 读(查):xxxModel.object.raw() 写(增删改):connection.cursor() 2 ...

  2. django写原生sql语句

    执行自定义SQL语言: from django.db import connection ​ cursor=connection.cursor() ​ # 插入操作 cursor.execute(&q ...

  3. django使用mysql原始语句,Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  4. django mysql sql语句_Django中使用mysql数据库并使用原生sql语句操作

    Django自身默认使用sqlite3这个轻量级的数据库,但是当我们开发网站时,sqlite3就没有mysql好,sqlite3适合一些手机上开发使用的数据库. 准备的软件 mysql数据库,版本5. ...

  5. 左外连接的sql语句_Django数据库连接和使用原生sql语句

    在操作数据库之前,首先先要连接数据库.这里我们以配置 MySQL 为例来讲解. Django连接数据库,不需要单独的创建一个连接对象.只需要在 settings.py 文件中做好数据库相关的配置就可以 ...

  6. EFCore之执行原生SQL语句

    EFCore通过 LINQ 语法为我们提供了非常便利的方式来操作数据库. 当有些业务逻辑较复杂而不能使用 LINQ 来查询时,可以使用原生 SQL 查询. 或者使用 LINQ 查询导致 SQL 查询效 ...

  7. php执行删除语句代码,ThinkPHP之数据删除和执行原生SQL语句

    一.数据删除 delete() 返回受影响的记录条数 $goods->delete(30);//删除主键值等于30的记录信息 $goods->delete('10,12,14');//删除 ...

  8. thinkphp mysql 预处理_thinkPHP框架中执行原生SQL语句的方法

    本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $ ...

  9. thinkphp5基本的一些操作/API友好/获取请求信息(Request)/判断请求类型(GET...)/验证参数数据(Validate)/连接数据库/原生sql语句查询

    文章目录 一.API友好 1.举两个thinkphp5关于API友好的例子 (1)数据输出 (2)错误调试Trace 二.获取请求信息(Request) 1.获取URL信息 2.获取 模块/控制器/操 ...

最新文章

  1. Android draw bitmap 图片不显示的问题
  2. Sentinel: 分布式系统的流量防卫兵
  3. 老李分享:Web Services 组件 2
  4. java real football_Java学习--设计模式之行为型模式(三)
  5. 成功解决 “this version of pandas is incompatible with numpy < 1.15.4\n“ImportError: this version of pand
  6. Java 策略模式和状态模式
  7. 别小看这不起眼的电阻,里面有很多学问!
  8. 开源最大的谎言是什么?
  9. 缺失值填充1——缺失值查看、确定值填充、参考值填充
  10. 麓山滨江2021高考成绩查询,长沙2021高考成绩排名榜单,长沙各高中高考成绩喜报...
  11. 华为系列设备优先级总结(一)
  12. linux挂载硬盘不适合重启,Linux分区g挂载目录不重启挂载硬盘
  13. 用友U8案例教程财务报表
  14. 02web前端笔试题
  15. 群晖NAS系统DSM入门
  16. 东芝300D粉盒清零
  17. java垃圾回收策论,share_doucument/jvm的垃圾回收策略.md at develop · LiuLei0571/share_doucument · GitHub...
  18. 读书笔记——WebKit技术内幕 WebKit架构和模块
  19. 台式计算机电源接线图,​台式机硬盘电源线接法【图解】
  20. python 操作word页眉表格_Python-docx读写Word文档(插入图片、表格,设置表格样式,章节,页眉页脚)...

热门文章

  1. poj 2409 Let it Bead Polya计数
  2. softmax回归的从零开始实现-09-p4
  3. Oracle fgs(精细审计)使用
  4. OSCache操作详解+标签使用
  5. java实现rabbitmq简单队列模型,生产者 消费者 消息队列
  6. json数据格式基础知识
  7. 企业网站DDOS防护解决方案
  8. python数据可视化-matplotlib之散点图sactter函数详解
  9. XP---VS05---部署个人网站初学者工具包---方案
  10. oracle——监听(三、监听配置)