django如何根据现有数据库表生成model详解
作者:ChenWenKen 时间:2024-01-17 02:29:21
题记: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
标签:django,生成,model
0
投稿
猜你喜欢
分类、属性、关键词与Tag
2009-08-27 12:57:00
asp脚本延时 自定义的delay函数
2008-04-07 12:59:00
python使用Apriori算法进行关联性解析
2022-08-15 13:02:10
Python+Opencv实现表格边框线检测
2023-08-11 04:55:14
JavaScript监听和禁用浏览器回车事件实例
2023-10-12 01:58:16
Python实现数据集划分(训练集和测试集)
2022-11-29 23:54:11
vscode常用插件整理汇总
2023-11-21 10:48:59
Go mod包管理工具详解
2024-04-30 10:08:11
django API 中接口的互相调用实例
2023-11-04 09:36:38
pytorch-神经网络拟合曲线实例
2022-03-17 18:17:30
使用opencv相关函数确定图片中的直线问题
2021-01-11 11:30:14
如何理解python面向对象编程
2023-01-01 20:19:56
js实现微信聊天效果
2024-04-16 09:14:33
python中asyncio异步编程学习
2022-10-20 06:19:37
JS实战篇之收缩菜单表单布局
2024-04-18 09:47:43
Vue.js中安装一个路由器demo
2024-05-09 14:51:04
JavaScript中函数声明与函数表达式的区别详解
2024-04-19 10:02:34
改善登陆界面的用户体验: 自动聚焦表单
2009-12-09 16:13:00
python excel转换csv代码实例
2023-10-30 15:19:53
Oracle查询当前的crs/has自启动状态实例教程
2024-01-12 21:24:22