您好,登录后才能下订单哦!
这篇文章主要介绍“django怎么根据现有数据库表生成model”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“django怎么根据现有数据库表生成model”文章能帮助大家解决问题。
题记:django如果要并和原有的数据库,那么就需要把现有数据库的表写入model.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()
输入命令:
python manage.py inspectdb > [项目路径]/models.py
在cmd中输入命令:
打开pycharm终端输入命令:
最后在models.py中自动创建了数据库表对应的类。
修改managed让之后修改models即可对数据库进行操作,在终端输入:
python manage.py inspectdb
提示如果你想让Django创建、修改和删除表,请删除’ managed = False '行
在终端输入:
python manage.py makemigrations
python manage.py migrate
用过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
关于“django怎么根据现有数据库表生成model”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。