python-Django_根据数据库表反向生成Model

2023-11-03

Django 根据数据库表反向生成 Model

简介

Django 根据数据库表反向生成 Model , 使用 inspectdb 反向生成 model 实体类 ( 可以指定表名转换 )

# python manage.py inspectdb 命令参数解释
'''
--database 数据库名: 
	要转换的数据库配置别名,对应 settings.py 文件里的 DATABASES 数据库配置	
	
tablename1 tablename2:
	要转换的数据表名,多个表名之间用逗号隔开,如果不加表名参数即是数据库里的全部表

app/models.py: 
	输出到某个应用下的文件	
	
注意:
	当项目配置了两个以上的数据库才要通过 --database ,不加 database 参数默认就是指向 default 的数据库
	如果输出的文件里有内容,操作会清空原有内容再将结果写入
	可以先输出到 models_temp.py 临时文件里,再将 model 类复制到 models.py 文件里
	文件名路径是相对 manage.py 文件的
'''
python manage.py inspectdb --database databasename tablename1 tablename2 > app/models.py

django 全局迁移命令

# 将 Model 的改动生成文件
python manage.py make migrations  # 此时数据库不生效
# 提交改动
python manage.py migrate          # 此时数据库会自动生成 Model 对应的数据表

只改动的 app 下面的 Model 或者某个文件中的 Model,那就需要指定 appname 和 filename

# 生成指定 app 下面的改动文件
python manage.py makemigrations appname
# 提交指定 app 下面指定的改动文件
python manage.py migrate appname filename

反向生成 Model 用法

  • 有根据 Model 自动生成数据库表的命令,那么肯定就有根据数据库表反向生成 Model 的命令
# 使用这条命令,会根据设置的数据库中的表在自动生成对应的 Model 代码,并打印出来
python manage.py inspectdb  
  • 可以直接将打印的代码导入到指定的 Model 文件
# 前提是创建了 app(generation_test) 并且在 setting.py 文件中注册过
python manage.py inspectdb > generation_test/models.py  
  • 配置多个数据库,可以配置数据库别名来指定根据哪个库中的表来生成 Model
# default 是默认的别名
python manage.py inspectdb --database default > generation_test/models.py  
  • 将指定的表生成对应的 Model
python manage.py inspectdb --database default table1 table2 > generation_test/models.py
  • 示例

项目 app01 需要对 settings.py 中配置的 db1db2 两个数据库, 生成 db2 数据库中表名为 usermodels.py 文件

python manage.py inspectdb --database db2 user  > app01/models.py

如果只需要类代码则去掉路径,在 **控制台 **可以看到(推荐使用,直接从控制台拷贝 model 类,添加到 models.py 文件)

python manage.py inspectdb --database db2 user
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python-Django_根据数据库表反向生成Model 的相关文章

随机推荐

  • 服务器性能网络指标,什么是网络性能指标 网络性能指标有哪些

    什么是网络性能指标 网络性能指标有哪些 这些一定要考虑的 一 什么是网络性能指标 网络性能指标 是衡量网络性能的指标 包括带宽 时延 带宽时延积 二 网络性能指标有哪些 端到端的网络性能指标包括传输线路指标 网络时延指标和网络设备指标 1
  • 鲸鱼优化算法——使用Python实现

    鲸鱼优化算法 使用Python实现 鲸鱼优化算法是一种新兴的优化算法 它受到鲸鱼集群捕猎行为的启发 该算法具有全局搜索能力和收敛速度快等优点 在多个领域中得到了广泛应用 本文将介绍使用Python实现鲸鱼优化算法 并提供源代码 鲸鱼优化算法
  • ubuntu18.04源码编译pytorch

    上篇文章win10安装pytorch只是安装好了库 但是并不能追踪到pytorch源代码 windows平台下的源码编译太过麻烦 linux系统笔者是安装在虚拟机中 并不能调用宿主机的CUDA和CUDNN 但是还是编译一下CPU版的pyto
  • R语言绘制各式各样的图形

    R语言绘制五个节点的有向图 library igraph g2 lt graph edges c 1 4 1 3 1 2 1 5 2 4 2 3 2 5 n 5 gt set vertex attr color value cadetblu
  • 第17课:生活中的享元模式——颜料很贵必须充分利用

    用程序来模拟生活 从剧情中思考享元模式 享元模式 享元模式的模型抽象 类图 基于框架的实现 模型说明 设计要点 优缺点 应用场景 故事剧情 团队的拓展培训是很多大公司都组织的活动 因为素质拓展培训能将企业培训 团队建设 企业文化融入到有趣的
  • vue项目,浏览器报错:ReferenceError: h is not defined

    Jsx语法 遇到这种错误 检查一下自己data 内有没有类似图片上的代码结构的参数 这种属于jsx语法 也能直接将组件渲染出来 但是在某些特定情景下浏览器控制台会报 ReferenceError h is not defined这个错误 解
  • hystrix线程池隔离的原理与验证

    引子 幸福很简单 今天项目半年规划被通过 终于可以早点下班 先坐公交 全程开着灯 买了了几天的书竟然有时间看了 半小时后 公交到站 换乘大巴车 车还等着上人的功夫 有昏暗的灯光 可以继续看会儿书 过会儿车跑起来了 灯关了 我合上书 头靠着车
  • 压测工具Jmeter入门使用

    一 创建一个基础的Web测试 1 测试内容 模拟五个用户请求2次指定的http接口 并且重复2次 也就是总共请求有5 2 2 20 次 要构建本次内容需要用到Jmeter的元素 线程组 HTTP请求 HTTP请求默认值和图形结果 2 具体操
  • 单片机设计_智能计算器(AT89C51、LCD1602、矩阵键盘)

    基于单片机的智能计算器 AT89C51 LCD1602 矩阵键盘 想要更多项目私wo 一 简介 此电路由AT89C51最小系统 LCD1602液晶显示模块和矩阵键盘模块组成 二 执行效果 三 部分代码 S16 S12 S8 S4分别是123
  • 爬虫IP时效问题:优化爬虫IP使用效果实用技巧

    作为一名专业的爬虫程序员 我们经常遇到的一个棘手问题那就是爬虫IP的时效性 由于网站的反爬虫机制不断升级 很多爬虫IP的可用时间越来越短 导致我们的爬虫任务频繁中断 今天 我将和大家分享一些优化爬虫IP使用效果的实用技巧 希望能帮助大家解决
  • 【性能测试】性能测试之性能测试指标详解(性能指标、CPU、内存、负载、磁盘)

    目 录 一 系统性能测试指标 1 1 响应时间 1 2 并发 1 3 点击量 点击率 1 4 吞吐量 吞吐率 1 5 TPS QPS 1 6 PV UV 二 Linux服务器性能指标 2 1 CPU使用率 2 2 内存占用率 2 3 系统平
  • 使用R语言的`order()`函数对数据框(dataframe)的行进行排序

    使用R语言的order 函数对数据框 dataframe 的行进行排序 在R语言中 order 函数可以用来对数据框的行进行排序 排序可以按照一个或多个列的值来进行 可以选择是升序还是降序排列 下面我将详细介绍如何使用order 函数对数据
  • 天数怎么换算成月_怎么把日期转换为天数

    1 在EXCEL中如何把天数转为年月日 年月日转为天数 在EXCEL中把天数转为年月日具体步骤如下 1 第一步 电脑打开Excel表格 如下图所示 2 第二步 电脑打开Excel表格后 输入公式 INT I16 365 年 INT I16
  • Android studio 配置Git

    使用GIT前请阅读 有git基础可略过 git指引 http www bootcss com p git guide 一 下载git http git scm com download 二 安装 全部默认配置即可 三 配置 运行Git Ba
  • 佳能相机里误删的照片怎么恢复

    佳能相机一直以耐用性 高效性以及高画质著称 在相机领域里有一定口碑 相信很多人都是佳能的忠实粉丝 但是不管它的质量多么好 拍出来的照片多么高清 我们却总也避免不了人为的失误 万一不小心将里面的照片误删了 该怎么恢复呢 下面就一起来学习具体恢
  • springboot maven项目环境搭建idea

    springboot maven项目环境搭建idea 文章目录 springboot maven项目环境搭建idea 用到的软件 idea下载和安装 java下载和安装 maven下载和安装 安装maven 添加JAVA HOME路径 增加
  • 第六部分、JEECG-BOOT 通过archetype创建module模块

    文章目录 第六部分 通过archetype创建module模块 通过Archetype创建模块代码 代码结构如下 如何使用 第六部分 通过archetype创建module模块 通过Archetype创建模块代码 包名规则 org jeec
  • 面向对象设计原则 选自《敏捷软件开发原则,模式与实践》

    单一职责原则 就一个类而言 应该仅有一个引起他变化的原因 最简单也是最难掌握的一个原则 其中单一职责 内聚 职责 变化的原因 不同职责并非绝对不能共处 关键是发现类中变化特征不同的职责减少耦合 这个是横向的 开放 封闭原则 软件实体 类 模
  • 每日一道Python编程题目练习,不定期更新

    自学python中 此文章目的为记录练习过程 同时督促自己每天练习一道python题目 题目来源于网络 代码由自己书写 初学者 仅为记录 大佬不喜勿喷 尽量书写注释 如有错误 欢迎指正 如果有推荐的题目可以评论 目前感觉对python的基础
  • python-Django_根据数据库表反向生成Model

    Django 根据数据库表反向生成 Model 简介 Django 根据数据库表反向生成 Model 使用 inspectdb 反向生成 model 实体类 可以指定表名转换 python manage py inspectdb 命令参数解