没有合适的资源?快使用搜索试试~ 我知道了~
Mysql数据库反向生成Django里面的models指令方式
需积分: 7 1 下载量 94 浏览量
2020-12-17
12:15:57
上传
评论
收藏 54KB PDF 举报
温馨提示
试读
2页
python manage.py inspectdb 或 python manage.py inspect > app/models.py 补充知识:Django框架MySQL数据库到models模型的映射关系 一、前言 我的数据库已经用MySQL Workbench设计好了,也插入了一些测试数据,现在开始在Django中设计models模型。本以为顺风顺水,没想到也遇到一些bug,现在记录一下踩坑填坑过程。 二、设计models模型 1. 如果数据库中表的数量比较多,可以先导出,然后查看对应表的字段,根据不同表设计不同的models类,根据同一张表的不同字段设计类属性。 用MySQL
资源推荐
资源详情
资源评论
Mysql数据库反向生成数据库反向生成Django里面的里面的models指令方式指令方式
python manage.py inspectdb
或
python manage.py inspect > app/models.py
补充知识:补充知识:Django框架MySQL数据库到models模型的映射关系
一、前言一、前言
我的数据库已经用MySQL Workbench设计好了,也插入了一些测试数据,现在开始在Django中设计models模型。本以为顺
风顺水,没想到也遇到一些bug,现在记录一下踩坑填坑过程。
二、设计二、设计models模型模型
1. 如果数据库中表的数量比较多,可以先导出,然后查看对应表的字段,根据不同表设计不同的models类,根据同一张表的
不同字段设计类属性。
用MySQL Workbench导出数据库操作:
2. 打开credits.sql文件,credits表的信息是:
CREATE TABLE `credits` (
`user_id` varchar(64) NOT NULL,
`credits_total` int(64) DEFAULT '0',
`credits_buy` int(64) DEFAULT '0',
`time_credits_buy` datetime(6) DEFAULT NULL,
`credits_before_day` int(32) DEFAULT '0',
`time_sign_before_day` datetime(6) DEFAULT NULL,
PRIMARY KEY (`user_id`),
CONSTRAINT `credits_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `visitors` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中,credits表字段信息是:
user_id,credits_total,credits_buy,time_credits_buy,credits_before_day,time_sign_before_day
主键是:user_id,也是外键,关联了visitors表的user_id主键
3. 设计models类
from django.db import models
# 积分信息
class Credits(models.Model):
# id = models.IntegerField('id主键', primary_key=True, auto_created=True)
# user_id = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True)
user = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True)
credits_total = models.IntegerField('总积分',default=0)
credits_buy = models.IntegerField('购买的积分',default=0)
time_credits_buy = models.DateTimeField('购买的时间',auto_now_add=True)
credits_before_day = models.IntegerField('前一天签到的积分',default=0)
time_sign_before_day = models.DateTimeField('前一天签到的时间',default=None)
class Meta():
# credits,为数据库中的表名
db_table = 'credits'
注意:
注释中,# user_id = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True),是我最开始写的user_id
类属性,存在问题,如下图所示:
解决方案:把user_id 改成user即可,user = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True),
正确如下图:
资源评论
weixin_38633897
- 粉丝: 10
- 资源: 972
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功