一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

一篇文章教會你使用Django根據(jù)現(xiàn)有數(shù)據(jù)庫反向生成models

 Python進(jìn)階者 2023-02-10 發(fā)布于廣東

不堪盈手贈,還寢夢佳期。

前言

Hey,大家好呀,我是碼農(nóng),星期八!熟悉Django的都知道,Django真是個好東西。

復(fù)制粘貼一把梭很快都能擼出來一個web,再借助Django的Models和ORM。

查詢簡直不要太方便?。?!

但是,但是,但是,真的如此嗎???

Django Models遇到的問題

通常情況下,我們是通過

python manage.py makemigrationspython manage.py migrate

這兩條命令在數(shù)據(jù)庫中幫助我們(遷移數(shù)據(jù)庫)創(chuàng)建表的。

但是我如果我們的表經(jīng)常修改,會在每個app的migrations下創(chuàng)建大量日志。

如果修改models.py的次數(shù)足夠多,你還會發(fā)現(xiàn)在遷移時各種報錯?。?!

反正就是,不是驢不蹬,就是磨不轉(zhuǎn)。。。這個場景不好復(fù)原,就不放截圖了。

還有一種場景是,你去一個公司了,或者你已經(jīng)創(chuàng)建一個表了,反正就是已經(jīng)有表了。

不需要再通過Django去生成了。

這種情況咋辦???給同事說說刪了用Django生成???,里面十萬條數(shù)據(jù)呢,開什么玩笑!

所以,這時候也需要有一個工具能通過現(xiàn)有的表生成Django對應(yīng)的models。

根據(jù)已有表反向生成models

其實再執(zhí)行遷移命令時,除了自己的表,還會像auth.xxdjango.xx開頭的表。

這類表主要是的作用主要是為django admin提供服務(wù)和django session提供服務(wù)。

反向生成django models,用到的命令主要是

python manage.py inspectdb [表名]# 不寫表名默認(rèn)生成所有表

示例:根據(jù)web_student表反向生成

命令:

python manage.py inspectdb web_studen

執(zhí)行結(jié)果

可以復(fù)制第二個紅框的內(nèi)容到app下的models.py中。

注:生成的沒有verbose_name等其他參數(shù),需要手動添加。

示例:生成所有表

python manage.py inspectdb

執(zhí)行結(jié)果

不加表名會將當(dāng)前數(shù)據(jù)庫下所有的表都反向生成。

下面還有很多,截圖截不了,然后將生成的代碼復(fù)制到app/models.py中就行了。

反向生成models到app中

上述我們雖然根據(jù)Mysql現(xiàn)有的表生成了Django models,但是我們總不能每次都復(fù)制粘貼吧?

所以我們還需要一個命令。

python manage.py inspectdb [表名] > app_name/models.py# 還是同理,表名不寫就是所有表,寫了就是單獨(dú)表

示例

python manage.py inspectdb web_student > web/models.py

執(zhí)行結(jié)果

生成就直接寫入到了文件。

注意:這條命令會把文件清空,不會進(jìn)行追加

反向生成的models解讀

字段名db_table不可修改,model名隨便修改。

關(guān)于時間字段問題

通常情況下,我們會有一個create_timeupdate_time

反向生成的models

默認(rèn)生成的需要有點(diǎn)問題,在使用時會發(fā)現(xiàn)添加時間和更新時間不起作用?。?!

需要加上一個參數(shù)auto_xxx

create_time = models.DateTimeField(auto_now_add=True, verbose_name="創(chuàng)建時間")update_time = models.DateTimeField(auto_now=True, verbose_name="更新時間")

這樣寫就會自動更新了。

總結(jié)

本次主要講述的是根據(jù)Mysql反向生成Django models。

主要關(guān)鍵字是inspectdb,inspectdb后面需要跟表名,不跟表名反向生成所有。

值得注意的是時間問題,如果需要自動創(chuàng)建時間和更新時間記得添加auto_xx參數(shù)。

我是碼農(nóng)星期八,如果覺得還不錯,記得動手點(diǎn)贊一下哈。感謝你的觀看。

如果你覺得文章還可以,記得點(diǎn)贊留言支持我們哈。感謝你的閱讀,有問題請記得在下方留言噢~

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    黄男女激情一区二区三区 | 国产成人精品一区在线观看 | 激情五月天深爱丁香婷婷| 99久久国产亚洲综合精品| 日本精品中文字幕人妻| 欧美在线观看视频免费不卡| 香蕉久久夜色精品国产尤物| 色无极东京热男人的天堂| 国产精品香蕉一级免费| 91欧美日韩精品在线| 又大又长又粗又猛国产精品| 欧美大粗爽一区二区三区| 精品al亚洲麻豆一区| 日本欧美一区二区三区就| 尤物久久91欧美人禽亚洲| 国产成人在线一区二区三区| 国产免费无遮挡精品视频| 久七久精品视频黄色的| 日本免费一级黄色录像| 日本欧美三级中文字幕| 日韩不卡一区二区视频| 99国产精品国产精品九九| 精品国产品国语在线不卡| 亚洲精选91福利在线观看 | 九九热精彩视频在线播放| 欧美日韩成人在线一区| 日韩性生活视频免费在线观看| 国产av熟女一区二区三区四区 | 国产精品一区二区不卡中文| 日本一级特黄大片国产| 偷拍偷窥女厕一区二区视频| 国产精品丝袜一二三区| 国产一区一一一区麻豆| 国产一级内片内射免费看| 中文字幕日产乱码一区二区| 日韩国产亚洲一区二区三区| 福利视频一区二区在线| 国产a天堂一区二区专区| 日本一级特黄大片国产| 日本大学生精油按摩在线观看| 亚洲精品高清国产一线久久|