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()

django如何根据现有数据库表生成model详解

二,打开cmd或pycharm的Terminal输入命令

输入命令:

python manage.py inspectdb > [项目路径]/models.py

在cmd中输入命令:

django如何根据现有数据库表生成model详解

打开pycharm终端输入命令:

django如何根据现有数据库表生成model详解

最后在models.py中自动创建了数据库表对应的类。

django如何根据现有数据库表生成model详解

三,managed = False 删除或改为 managed = True

修改managed让之后修改models即可对数据库进行操作,在终端输入:

python manage.py inspectdb

提示如果你想让Django创建、修改和删除表,请删除’ managed = False '行

django如何根据现有数据库表生成model详解

四,执行迁移

在终端输入:

python manage.py makemigrations
python manage.py migrate

django如何根据现有数据库表生成model详解

补充: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
  • asp之家 网络编程 m.aspxhome.com