在一次工作中,有这么一个问题,就是要导入的数据字段不确定,但是还想使用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. MySQL存储过程之事务管理
  2. 全新尝试|ComponentOne WinForm和.NET Core 3.0
  3. react实现异步插件_React-loadable实现组件进行异步加载
  4. 一套通用的后台管理系统Base Admin 前端:layui 后端:java
  5. Windows下配置Mysql免安装版
  6. Maven多模块构建实例
  7. jhipster初接触
  8. web前端基础教程实践DIV+CSS网页布局入门指南
  9. 计算机毕业设计Java-ssm博物馆交流平台源码+系统+数据库+lw文档
  10. 渗透测试抓包工具-wireshark
  11. cnzz.php,PHP curl抓取cnzz统计数据
  12. Ethernet/IP介绍
  13. 念在天涯,心在咫尺【转载】
  14. 【第3版emWin教程】第45章 emWin6.x窗口管理器之定时器使用
  15. kettle命令运行工具(pan、kitchen、carte)
  16. 车辆调度 数学建模c语言,2019数学建模国赛C题–机场的出租车调度问题
  17. php5.6解密软件,php解密:php5.4 zend解密核心代码分享
  18. PostgreSQL登录及修改密码
  19. 血栓清道夫机器人_血栓斑块清道夫
  20. 【DL with Pytorch】第 3 章 :使用 DNN 的分类问题

热门文章

  1. C# winform打开Excel文档的方法总结!
  2. test title
  3. EMF-edit功能解析
  4. 状态模式(Strategy Pattern)
  5. 阿群笔记:CentOS7 在线安装 docker 的推荐方法
  6. 偶遇拍外景的小姐姐们
  7. 多线程写图像文件的一点小测试
  8. 让C#语言充当自身脚本!——.NET中的动态编译
  9. MFC 教程【12_对话框和对话框类CDialog 】
  10. otn系统中常用的电层_夏季温室大棚生产中常用的降温系统