django初始化数据库的实例


Posted in Python onMay 27, 2018

最近项目需要,需要在表创建好之后,初始化一些数据。Django初始化数据的方法有很多,但都需要额外的手动操作,不智能。

看网上有一种方法用post_syncdb信号来初始化数据库,但是我用的Django版本是1.8, 使用python manage.py migrate来同步数据库,不使用Python manage.py syncdb来同步数据库,就想看看能否使用post_migrate信号来初始化数据库。研究了Django的signal,试了一下,果然可以。

在你的APP目录下,创建一个文件management.py

from django.db.model.signal import post_migrate
from myapp.models import MyModel

#定义receiver函数
def init_db(sender, **kwargs):
 if sender.name == 'MyModel.__name__':
  if not MyModel.objects.exists():
   MyModel.objects.create()  # 当发送信号的模型是你要初始化的模型的时候,在进行数据库操作,不加判断的话,每一个模型都会调用

post_migrate.connect(init_db)

这样就好了,你执行Python manage.py migrate 之后,就会初始化数据。

以上这篇django初始化数据库的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取网页上图片下载地址的方法
Mar 11 Python
详解 Python 读写XML文件的实例
Aug 02 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
Django 批量插入数据的实现方法
Jan 12 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
Python实现动态循环输出文字功能
May 07 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 02 Python
Python学习之包与模块详解
Mar 19 Python
django 删除数据库表后重新同步的方法
May 27 #Python
Django 根据数据模型models创建数据表的实例
May 27 #Python
Django使用Mysql数据库已经存在的数据表方法
May 27 #Python
django中模板的html自动转意方法
May 27 #Python
Django读取Mysql数据并显示在前端的实例
May 27 #Python
django加载本地html的方法
May 27 #Python
《与孩子一起学编程》python自测题
May 27 #Python
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
PHP fastcgi模式上传大文件(大约有300多K)报错
2014/09/28 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
node.js中的fs.exists方法使用说明
2014/12/17 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
详解Python中find()方法的使用
2015/05/18 Python
Python正则表达式使用经典实例
2016/06/21 Python
python中 logging的使用详解
2017/10/25 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
pandas 时间格式转换的实现
2019/07/06 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
商场营业员岗位职责
2015/04/14 职场文书
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers