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