django如何根据现有数据库表生成model详解
作者:ChenWenKen 发布时间:2024-01-17 02:29:21
标签:django,生成,model
题记:django如果要并和原有的数据库,那么就需要把现有数据库的表写入model.py中。
一,在setting.py中配置好连接数据库的参数
在setting中的DATABASESZ中配置默认参数,并在INSTALLED_APPS中导入模块名。
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'jljupcs', # 数据库名称
'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 3306, # 端口
'USER': 'root', # 数据库用户名
'PASSWORD': '', # 数据库密码
}
}
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'conversion',
]
在主项目目录下导入pymysql
import pymysql
pymysql.install_as_MySQLdb()
二,打开cmd或pycharm的Terminal输入命令
输入命令:
python manage.py inspectdb > [项目路径]/models.py
在cmd中输入命令:
打开pycharm终端输入命令:
最后在models.py中自动创建了数据库表对应的类。
三,managed = False 删除或改为 managed = True
修改managed让之后修改models即可对数据库进行操作,在终端输入:
python manage.py inspectdb
提示如果你想让Django创建、修改和删除表,请删除’ managed = False '行
四,执行迁移
在终端输入:
python manage.py makemigrations
python manage.py migrate
补充:Django根据数据库表反向生成Model
用过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的命令
python manage.py inspectdb # 使用这条命令,会根据设置的数据库中的表在自动生成对应的Model代码,并打印出来
当然也可以直接将打印的代码直接导入到指定的Model文件中
python manage.py inspectdb > student/models.py # 前提是创建了app(student)并且在setting.py文件中注册过
配置了多个数据库,则还可以配置数据库别名来指定根据哪个库中的表来生成Model
python manage.py inspectdb --database default >student/models.py # default是默认的别名
将指定的表生成对应的Model
python manage.py inspectdb --database default table1 table2 >student/models.py
来源:https://blog.csdn.net/qq_38335295/article/details/123871683
0
投稿
猜你喜欢
- 1. 连接对象操作数据库之前,首先要建立数据库连接。有下面几个方法进行连接。>>>import cx_Oracle>
- 对文件进行重命名直接贴代码: import ossrcFile = './actwork/linkFile/allExtL
- 运行python程序时,有时需要在命令行传入一些参数。常见的方式是在执行时,在脚本名后直接追加空格分隔的参数列表(例如 python tes
- Ranorex测试报告如何发送到邮箱在网上看了下,其实可以通过在Ranorex上或者VS调用编写发送邮箱代码就可以执行发送了,RX主要涉及到
- 本文实例讲述了Python实现的最近最少使用算法。分享给大家供大家参考。具体如下:# lrucache.py -- a simple LRU
- 前言左思右想没有头绪时,刚好看到一篇介绍Pygame制作飞机大战的文章。文章写的不错,文中代码拿来就能跑。有了!要不直接把飞机大战改成接兔子
- ASP通过XMLDom在服务器端操作XML文件的主要方法和实现对于小数据量,xml文件在检索更新上于ACCESS有很多优势。我曾经测试过不用
- 本文实例讲述了python基于queue和threading实现多线程下载的方法,分享给大家供大家参考。具体方法如下:主代码如下: &nbs
- 环境Sqlserver 2016 .net 4.5.2 目前测试数据1300万 大约3-4分钟.(限制一次读取条数 和
- 如何生成斐波那契數列斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计
- python time.sleep()-睡眠线程还是进程?它会阻止线程。如果查看Python源代码中的Modules / timemodul
- 生活中有很多需要用到关联图的地方,至少我认为的是这样的图:https://www.echartsjs.com/examples/zh/edi
- 首先,我们用webpy写一个简单的网站,监听8080端口,返回“Hello, EverET.org”的页面。然后我们使用我们的forward
- 本文实例讲述了使用coverage统计python web项目代码覆盖率的方法。分享给大家供大家参考,具体如下:在使用python+sele
- CSS3草案中定义了{opacity:来声明元素的透明度,这已经得到了大多数现代浏览器的支持,而IE则很早通过特定的私有属性filter来实
- 一、备份数据库 1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server
- 第一种,在方法后面加问号,然后执行,如 abs?第二种,光标移动到方法上面,按shift+tab,弹出文档,连续按选择文档详细程度补充知识:
- 查看当前用户拥有的系统权限 select * from user_sys_privs; 系统权限 系统管理员授予-----sys用户 cre
- Access爱好者以会VBa为荣。我觉得这不是好现象。vba只是vb的子集,有着很多限制,比如不支持继承,不支持指针,不支持子界类型等。使用
- 1.pytnon的基本数据类型数字类型:整型(int)和浮点型(float)字符串(str)类型:用引号(单双引号都可以)定义一个字符串布尔