django初始化數(shù)據(jù)庫(kù)的實(shí)例
最近項(xiàng)目需要,需要在表創(chuàng)建好之后,初始化一些數(shù)據(jù)。Django初始化數(shù)據(jù)的方法有很多,但都需要額外的手動(dòng)操作,不智能。
看網(wǎng)上有一種方法用post_syncdb信號(hào)來初始化數(shù)據(jù)庫(kù),但是我用的Django版本是1.8, 使用python manage.py migrate來同步數(shù)據(jù)庫(kù),不使用Python manage.py syncdb來同步數(shù)據(jù)庫(kù),就想看看能否使用post_migrate信號(hào)來初始化數(shù)據(jù)庫(kù)。研究了Django的signal,試了一下,果然可以。
在你的APP目錄下,創(chuàng)建一個(gè)文件management.py
from django.db.model.signal import post_migrate from myapp.models import MyModel #定義receiver函數(shù) def init_db(sender, **kwargs): if sender.name == 'MyModel.__name__': if not MyModel.objects.exists(): MyModel.objects.create() # 當(dāng)發(fā)送信號(hào)的模型是你要初始化的模型的時(shí)候,在進(jìn)行數(shù)據(jù)庫(kù)操作,不加判斷的話,每一個(gè)模型都會(huì)調(diào)用 post_migrate.connect(init_db)
這樣就好了,你執(zhí)行Python manage.py migrate 之后,就會(huì)初始化數(shù)據(jù)。
以上這篇django初始化數(shù)據(jù)庫(kù)的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解python架構(gòu)?PyNeuraLogic超越Transformers
這篇文章主要為大家介紹了python使用?PyNeuraLogic超越Transformers示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03解讀Opencv中Filter2D函數(shù)的補(bǔ)全方式
這篇文章主要介紹了解讀Opencv中Filter2D函數(shù)的補(bǔ)全方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python統(tǒng)計(jì)純文本文件中英文單詞出現(xiàn)個(gè)數(shù)的方法總結(jié)【測(cè)試可用】
這篇文章主要介紹了Python統(tǒng)計(jì)純文本文件中英文單詞出現(xiàn)個(gè)數(shù)的方法,結(jié)合實(shí)例形式總結(jié)分析了Python針對(duì)文本文件的讀取,以及統(tǒng)計(jì)文本文件中英文單詞個(gè)數(shù)的4種常用操作技巧,需要的朋友可以參考下2018-07-07淺述python中argsort()函數(shù)的實(shí)例用法
本篇文章主要介紹了淺述python中argsort()函數(shù)的實(shí)例用法,詳細(xì)的介紹了argsort()函數(shù)的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03使用python對(duì)多個(gè)txt文件中的數(shù)據(jù)進(jìn)行篩選的方法
今天小編就為大家分享一篇使用python對(duì)多個(gè)txt文件中的數(shù)據(jù)進(jìn)行篩選的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07django 數(shù)據(jù)庫(kù)連接模塊解析及簡(jiǎn)單長(zhǎng)連接改造方法
今天小編就為大家分享一篇django 數(shù)據(jù)庫(kù)連接模塊解析及簡(jiǎn)單長(zhǎng)連接改造方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08