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聚类算法之DBSACN实例分析
Nov 20 Python
Python中http请求方法库汇总
Jan 06 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
python使用代理ip访问网站的实例
May 07 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
Python Pexpect库的简单使用方法
Jan 29 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
Feb 12 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
详解python命令提示符窗口下如何运行python脚本
Sep 11 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 Python
Python语言规范之Pylint的详细用法
Jun 24 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断点续传之文件分割合并详解
2016/12/13 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
innerText 使用示例
2014/01/23 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
Python实时获取cmd的输出
2015/12/13 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
python交易记录整合交易类详解
2019/07/03 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
2019/11/15 Python
pandas-resample按时间聚合实例
2019/12/27 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
党员公开承诺书2015
2015/01/21 职场文书
限期整改通知书
2015/04/22 职场文书