时间:2021-05-23
# 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下建management.commands模块
建立后的目录如下:
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扩展自定义命令方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在此之前,我们一直使用django的manage.py的runserver命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可
步骤根据之前的文章已经搭建好Django的目录开始流程运行manage.py文件#创建一个appstartappulb_managersettings.py文件
要在django项目中定期执行任务,比如每天一定的时间点抓取数据,刷新数据库等,可以参考stackoverflow的方法,先编写一个manage.py命令,然后
前言应用在Django的项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型.一创建应用程序创建步骤用manage.py中的子命令startapp创
一、创建Application转到manage.py的同级目录,运行:pymanage.pystartappNLP在sitting.py中注册该Applicat