DJango - Sqlachemy - 如何生成已有数据库的models

  在使用SQLAlchemy时,如果数据库已经存在,这个时候如果还要手工书写model格式,即繁琐也容易出错,这里提供两个工具实现为大家解除这个烦恼。 

1、使用sqlacodegen自动生成已有数据表的SQLAlchemy的Model 

  (1) 安装sqlacodegen:在控制台命令行下执行如下命令 
    pip install sqlacodegen安装完毕后通过在dos下执行:sqlacodegen --help,可以获取帮助信息 
  (2) 在命令行执行如下命令,生成model.py文件 
    sqlacodegen mysql+pymysql://root: aliyunzixun@xxx.com:3306/mystock > models.py

    其中“mysql+pymysql://root:aliyunzixun@xxx.com:3306/mystock” 为sqlAlchemy中create_engine()方法中参数,生成的model.py在dos所处的前文件夹内 

2、Django使用inspectdb来生成Model

  Django的数据库层从Python代码生成SQL schemas—但是对于遗留数据库,你已经拥有SQL schemas. 这种情况,你需要为已经存在的数据表创建model. 为此,Django自带了一个可以通过读取您的数据表结构来生成model的工具. 该辅助工具称为inspectdb,你可以通过执行manage.pyinspectdb来调用它. 

  通过运行django-admin.py startproject mysite (这里 mysite是你的项目的名字)建立一个Django项目。 好的,那我们在这个例子中就用这个 mysite作为项目的名字。编辑项目中的配置文件, mysite/settings.py,告诉Django你的数据库连接参数和数据库名。 具体的说,要提供 DATABASE_NAMEDATABASE_ENGINEDATABASE_USERDATABASE_PASSWORDDATABASE_HOST, 和 DATABASE_PORT这些配置信息.

  (注意,这里面有些配置项是可选的,更多信息参考第五章) (Note that some of these settings are optional. Refer to Chapter 5 for more information.)

  通过运行 pythonmysite/manage.pystartappmyapp(这里 myapp是你的应用的名字)创建一个Django应用.那么,我们就以 myapp做为这个应用的名字. 
  这里我们使用 myapp做为应用名.运行命令 pythonmysite/manage.pyinspectdb. 这将在 DATABASE_NAME数据库中检查所有的表和打印出为每张表生成的model 
class. 看一看输出结果想一下 inspectdb 能做些什么.将标准shell的输出重定向,保存输出到你的应用的 models.py文件里python mysite/manage.py inspectdb > mysite/myapp/models.py 

  编辑mysite/myapp/models.py文件以清理生成的 models 以及一些必要的定制化。

转载于:https://www.cnblogs.com/zero-white/p/8952029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值