Python(Web时代)—— Django操作现有数据库表

Mysql操作

前言

在实际开发过程中,我们经常会遇到数据库表已经建立好了,现在只需要开发项目功能,操作已有数据库表的情况。

Django为我们提供了inspecdb的方法。他的作用即是对已经存在的数据库表来反向映射结构到models.py中.

操作

第一步: 先建立数据库连接

在项目的 settings.py文件中配置mysql的连接信息

Python(Web时代)—— Django操作现有数据库表_第1张图片

再修改__init__.py

注:pymysql.version_info = (1, 4, 3, "final", 0)  如果数据迁移时没报错,此条命令可不加

Python(Web时代)—— Django操作现有数据库表_第2张图片

第二步: 采用 inspectdb 命令反向映射

python manage.py inspectdb > models.py

Python(Web时代)—— Django操作现有数据库表_第3张图片

执行完后,在manage.py文件的下面会出现一个models.py文件,里面包含了已有数据库的所有表及结构

Python(Web时代)—— Django操作现有数据库表_第4张图片

第三步: 使用模型,把要使用的模型中的 managed修改成True(False表示在迁移时候不新建此表),然后复制到自己的应用目录下即可

生成models文件后,里面最好只保留自己定义的表结构,其余系统自带的都可以删除掉,防止后续出现奇怪的错误

举例:比如要使用 student表,修改managed=True后,复制内容到自己应用的models.py文件中

Python(Web时代)—— Django操作现有数据库表_第5张图片

把需要的内容复制完后,就可以删除掉自动生成的这个models.py 文件

如果只想单独生成某个指定的表模型也是可以的,比如我现在只想生成Student表

python manage.py inspectdb student

Python(Web时代)—— Django操作现有数据库表_第6张图片

然后将模型类复制到自己的应用下,修改 managed的值为 True即可

程序猿与投资生活实录已改名为  程序猿知秋,WX 公众号同款,欢迎关注!! 

你可能感兴趣的:(python,程序语言,python,django,数据库)