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ā)送信號的模型是你要初始化的模型的時候,在進行數(shù)據(jù)庫操作,不加判斷的話,每一個模型都會調(diào)用 post_migrate.connect(init_db)
這樣就好了,你執(zhí)行Python manage.py migrate 之后,就會初始化數(shù)據(jù)。
以上這篇django初始化數(shù)據(jù)庫的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python Pytorch深度學(xué)習(xí)之自動微分
今天小編就為大家分享一篇關(guān)于Pytorch自動微分的文章,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-10-10
Pycharm 字體大小調(diào)整設(shè)置的方法實現(xiàn)
這篇文章主要介紹了Pycharm 字體大小調(diào)整的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
從0到1使用python開發(fā)一個半自動答題小程序的實現(xiàn)
這篇文章主要介紹了從0到1使用python開發(fā)一個半自動答題小程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Python企業(yè)編碼生成系統(tǒng)總體系統(tǒng)設(shè)計概述
這篇文章主要介紹了Python企業(yè)編碼生成系統(tǒng)總體系統(tǒng)設(shè)計,簡單描述了Python企業(yè)編碼生成系統(tǒng)的功能、結(jié)構(gòu)與相關(guān)編碼實現(xiàn)技巧,需要的朋友可以參考下2019-07-07

