最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql數(shù)據(jù)庫(kù)反向生成Django里面的models指令方式

 更新時(shí)間:2020年05月18日 09:11:52   作者:滄海一株蓮  
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)反向生成Django里面的models指令方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

python manage.py inspectdb

python manage.py inspect > app/models.py

補(bǔ)充知識(shí):Django框架MySQL數(shù)據(jù)庫(kù)到models模型的映射關(guān)系

一、前言

我的數(shù)據(jù)庫(kù)已經(jīng)用MySQL Workbench設(shè)計(jì)好了,也插入了一些測(cè)試數(shù)據(jù),現(xiàn)在開(kāi)始在Django中設(shè)計(jì)models模型。本以為順風(fēng)順?biāo)?,沒(méi)想到也遇到一些bug,現(xiàn)在記錄一下踩坑填坑過(guò)程。

二、設(shè)計(jì)models模型

1. 如果數(shù)據(jù)庫(kù)中表的數(shù)量比較多,可以先導(dǎo)出,然后查看對(duì)應(yīng)表的字段,根據(jù)不同表設(shè)計(jì)不同的models類(lèi),根據(jù)同一張表的不同字段設(shè)計(jì)類(lèi)屬性。

用MySQL Workbench導(dǎo)出數(shù)據(jù)庫(kù)操作:

2. 打開(kāi)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,也是外鍵,關(guān)聯(lián)了visitors表的user_id主鍵

3. 設(shè)計(jì)models類(lèi)

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('購(gòu)買(mǎi)的積分',default=0)
 time_credits_buy = models.DateTimeField('購(gòu)買(mǎi)的時(shí)間',auto_now_add=True)
 credits_before_day = models.IntegerField('前一天簽到的積分',default=0)
 time_sign_before_day = models.DateTimeField('前一天簽到的時(shí)間',default=None)
 
 class Meta():
  # credits,為數(shù)據(jù)庫(kù)中的表名
  db_table = 'credits'

注意:

注釋中,# user_id = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True),是我最開(kāi)始寫(xiě)的user_id類(lèi)屬性,存在問(wèn)題,如下圖所示:

解決方案:把user_id 改成user即可,user = models.ForeignKey(Visitors,on_delete=models.CASCADE,primary_key=True),正確如下圖:

4. time_credits_buy = models.DateTimeField('購(gòu)買(mǎi)的時(shí)間',auto_now_add=True),time_credits_buy類(lèi)屬性是時(shí)間類(lèi)型,數(shù)據(jù)庫(kù)中credits表對(duì)應(yīng)的也是時(shí)間類(lèi)型。

注意,剛開(kāi)始,我的數(shù)據(jù)庫(kù)中把 time_credits_buy 字段設(shè)置為varchar(64)類(lèi)型,而models模型中設(shè)置為時(shí)間類(lèi)型,兩邊的類(lèi)型不一致出現(xiàn)bug,如下圖所示:

特別注意,數(shù)據(jù)庫(kù)中的字段類(lèi)型,一定要和models定義的類(lèi)屬性類(lèi)型一致,否則報(bào)錯(cuò),有的時(shí)候很難發(fā)現(xiàn)bug

三、Django自動(dòng)生成models

>>> python manage.py inspectdb > app/models.py

如果數(shù)據(jù)庫(kù)表已經(jīng)存在,執(zhí)行命令,可以自動(dòng)生成Models模型,實(shí)現(xiàn)models與數(shù)據(jù)表的映射

以上這篇Mysql數(shù)據(jù)庫(kù)反向生成Django里面的models指令方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python三引號(hào)如何輸入

    python三引號(hào)如何輸入

    在本篇文章里小編給大家整理的是關(guān)于python三引號(hào)輸入方法及相關(guān)實(shí)例,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 詳解Python讀取和寫(xiě)入操作CSV文件的方法

    詳解Python讀取和寫(xiě)入操作CSV文件的方法

    CSV 文件(逗號(hào)分隔值文件)是一種純文本文件,它使用特定的結(jié)構(gòu)來(lái)排列表格數(shù)據(jù)。本文將詳細(xì)介紹Python中讀取個(gè)寫(xiě)入操作CSV文件的方法,需要的可以參考一下
    2022-03-03
  • 淺談Python的自省Introspection和反射機(jī)制Reflection

    淺談Python的自省Introspection和反射機(jī)制Reflection

    這篇文章主要介紹了淺談Python的自省Introspection和反射機(jī)制Reflection,反射就是通過(guò)字符串的形式去對(duì)象(模塊)中操作(查找/獲取/刪除/添加)成員,一種基于字符串的事件驅(qū)動(dòng),需要的朋友可以參考下
    2023-08-08
  • opencv 圖像禮帽和圖像黑帽的實(shí)現(xiàn)

    opencv 圖像禮帽和圖像黑帽的實(shí)現(xiàn)

    這篇文章主要介紹了opencv 圖像禮帽和圖像黑帽的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • python 實(shí)現(xiàn)UTC時(shí)間加減的方法

    python 實(shí)現(xiàn)UTC時(shí)間加減的方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)UTC時(shí)間加減的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python裝飾器基礎(chǔ)概念與用法詳解

    Python裝飾器基礎(chǔ)概念與用法詳解

    這篇文章主要介紹了Python裝飾器基礎(chǔ)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了Python裝飾器的概念、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • python自動(dòng)裁剪圖像代碼分享

    python自動(dòng)裁剪圖像代碼分享

    這篇文章主要介紹了python自動(dòng)裁剪圖像代碼分享,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • python循環(huán)接收http請(qǐng)求數(shù)據(jù)方式

    python循環(huán)接收http請(qǐng)求數(shù)據(jù)方式

    這篇文章主要介紹了python循環(huán)接收http請(qǐng)求數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python字符串、列表、元組、字典、集合的補(bǔ)充實(shí)例詳解

    Python字符串、列表、元組、字典、集合的補(bǔ)充實(shí)例詳解

    這篇文章主要介紹了Python字符串、列表、元組、字典、集合,結(jié)合實(shí)例形式詳細(xì)分析了Python字符串、列表、元組、字典、集合常見(jiàn)函數(shù)使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • python使用cookie庫(kù)操保存cookie詳解

    python使用cookie庫(kù)操保存cookie詳解

    Python中Cookie模塊(python3中為http.cookies)提供了一個(gè)類(lèi)似字典的特殊對(duì)象SimpleCookie,其中存儲(chǔ)并管理著稱(chēng)為Morsel的cookie值集合,這里介紹了python操作cookie的使用方法
    2014-03-03

最新評(píng)論

博客| 神木县| 和林格尔县| 永川市| 泾阳县| 寿阳县| 容城县| 定陶县| 玛纳斯县| 乌兰县| 招远市| 桐梓县| 武强县| 逊克县| 新安县| 隆回县| 玛沁县| 襄城县| 湖北省| 新郑市| 龙江县| 包头市| 韩城市| 于都县| 闵行区| 且末县| 江孜县| 陆良县| 惠来县| 福建省| 拉孜县| 钟祥市| 阿荣旗| 新丰县| 彩票| 永新县| 沿河| 榆社县| 许昌市| 大荔县| 黎城县|