Django实现由数据库反向映射生成models.py文件

(可能没有反向映射这个术语,但较好理解,我就这么称呼了。)

1.使用背景:

用Django写项目,要实现十几个表的创建,一个一个在models里写class太麻烦,在网上搜到的命令,可以实现“反向映射”,自动生成models.py文件。

2.具体命令:

python manage.py inspectdb --database databasename tablename1 tablename2 > 路径/models.py

示例为(我用的):

python manage.py inspectdb > bookstore/models.py

 其中bookstore是测试该功能新建的应用。

!!!注意,该命令会覆盖你所指定的应用的models.py文件

取巧的办法是像我这样新建一个应用,让“反向映射”生成的models.py覆盖无关紧要的models,然后将需要的class类代码手动复制到需要的地方,在用映射生成对应的数据库表,听起来很麻烦,但是可以保证即便出错也不会有大问题!

3.遇到的问题:

ValueError: source code string cannot contain null bytes

报这个问题有两种可能:utf8、文件名

第一种情况:utf8。检查你指定的models.py是否为utf-8格式,在右下角查看

 第二种情况:文件名。我这里的报错就是文件名自定义了,我用了错误的命令为:

python manage.py inspectdb > bookstore/models_from_db_bak.py

更改指定文件名为标准的:models.py后程序运行成功

python manage.py inspectdb > bookstore/models.py

感谢阅读,这是我的第一篇csdn,希望从这里开始成为大佬,嘿嘿。

如果你有疑问,可以联系我的邮箱:FunnyRainn@163.com

我会尽可能的尝试帮你解决。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值