django manage.py扩展自定义命令方法


Posted in Python onMay 27, 2018

# 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模块

建立后的目录如下:

django manage.py扩展自定义命令方法

4.在commands下建initdata.py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.core.management.base import BaseCommand, CommandError
import os
import logging
import subprocess
INTERPRETER = "/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扩展自定义命令方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现校园网自动登录的示例讲解
Apr 22 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
python实现石头剪刀布程序
Jan 20 Python
Python类中方法getitem和getattr详解
Aug 30 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
python归并排序算法过程实例讲解
Nov 04 Python
Python __slots__的使用方法
Nov 15 Python
Python try except finally资源回收的实现
Jan 25 Python
Python扫描端口的实现
Jan 25 Python
python实现windows下文件备份脚本
May 27 #Python
django 解决manage.py migrate无效的问题
May 27 #Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 #Python
解决Django migrate No changes detected 不能创建表的问题
May 27 #Python
django 在原有表格添加或删除字段的实例
May 27 #Python
用python写扫雷游戏实例代码分享
May 27 #Python
和孩子一起学习python之变量命名规则
May 27 #Python
You might like
php中使用preg_replace函数匹配图片并加上链接的方法
2013/02/06 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
js模仿hover的具体实现代码
2013/12/30 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
jQuery中的100个技巧汇总
2016/12/15 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
vue页面切换过渡transition效果
2018/10/08 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
数控专业毕业生求职信范文
2013/09/21 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
工作中个人的自我评价
2013/12/31 职场文书
销售会计岗位职责
2014/03/15 职场文书
创业女性典型材料
2014/05/02 职场文书
党员创先争优心得体会
2014/09/11 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
化验室岗位职责
2015/02/14 职场文书
Python之matplotlib绘制折线图
2022/04/13 Python