欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django初始化數(shù)據(jù)庫(kù)的實(shí)例

 更新時(shí)間:2018年05月27日 10:36:32   作者:python_tty  
今天小編就為大家分享一篇django初始化數(shù)據(jù)庫(kù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近項(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)文章

最新評(píng)論