失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > django manage.py扩展自定义命令

django manage.py扩展自定义命令

时间:2019-03-03 17:53:43

相关推荐

django manage.py扩展自定义命令

# django manage.py扩展自定义命令

环境:

mac

django1.10.3

在实际的项目开发过程中,我们可能要执行某脚本初始化数据库,可能要启动多个服务,比如启动celery,redis等。要是直接执行python mange.py celery/redis那该多方便啊!,能把这些命令整合到django框架的manage.py中吗?

示例-初始化数据

通过执行python manage.py initdata命令初始化数据,执行此命令后,调用某数据初始化脚本文件,进行数据初始化。

1.创建项目 myproject

2.创建app myapp,并配置settings.py

settings.py

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myapp',]

3.在myapp下建mands模块

建立后的目录如下:

4.在commands下建initdata.py文件

#!/usr/bin/env python# -*- coding: utf-8 -*-from django.core.management.base import BaseCommand, CommandErrorimport osimport loggingimport subprocessINTERPRETER = "/usr/bin/python"class Command(BaseCommand):def handle(self, *args, **options):if not os.path.exists(INTERPRETER):log.error("Cannot find INTERPRETER at path \"%s\"." % INTERPRETER)dirs = os.path.join(os.path.dirname(__file__), '../../..') # 上上上级文件目录名processor = dirs + "/init/data.py"pargs = [INTERPRETER, processor]subprocess.Popen(pargs)

5.编写data.py

#!/usr/bin/env python# -*- coding: utf-8 -*-if __name__ == '__main__':print 'ok'

6.执行python manage.py initdata

如果觉得《django manage.py扩展自定义命令》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。