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 02 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
python嵌套字典比较值与取值的实现示例
Nov 03 Python
python按比例随机切分数据的实现
Jul 11 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
从pandas一个单元格的字符串中提取字符串方式
Dec 17 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Python自动登录QQ的实现示例
Aug 28 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
python用分数表示矩阵的方法实例
Jan 11 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的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
定义select的边框颜色
2008/04/28 Javascript
匹配任意字符的正则表达式写法
2010/04/29 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
ExtJS[Desktop]实现图标换行示例代码
2013/11/17 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
js DOM的事件常见操作实例详解
2019/12/16 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
理解Python中函数的参数
2015/04/27 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python Django的web开发实例(入门)
2019/07/31 Python
Python 切分数组实例解析
2019/11/07 Python
利用python画出AUC曲线的实例
2020/02/28 Python
使用 django orm 写 exists 条件过滤实例
2020/05/20 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
安全标准化汇报材料
2014/02/03 职场文书
《理想》教学反思
2014/02/17 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
思想品德评语大全
2014/12/31 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
关于EntityWrapper的in用法
2022/03/22 Java/Android