文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

题记: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

总结

到此这篇关于django如何根据现有数据库表生成model的文章就介绍到这了,更多相关django生成model内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯