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利用flask sqlalchemy实现分页效果
Aug 02 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
浅谈Python反射 & 单例模式
Mar 21 Python
python如何制作英文字典
Jun 25 Python
python getpass实现密文实例详解
Sep 24 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
Python求正态分布曲线下面积实例
Nov 20 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
python变量的作用域是什么
May 26 Python
Python reversed反转序列并生成可迭代对象
Oct 22 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
一个程序下载的管理程序(一)
2006/10/09 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
php事务处理实例详解
2014/07/11 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
基于JQuery实现图片上传预览与删除操作
2016/05/24 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
详解vue中axios的封装
2018/07/18 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
Python 中的with关键字使用详解
2016/09/11 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
python调用其他文件函数或类的示例
2019/07/16 Python
关于pycharm中pip版本10.0无法使用的解决办法
2019/10/10 Python
Python文件路径名的操作方法
2019/10/30 Python
python关闭占用端口方式
2019/12/17 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
会计专业毕业生自我评价
2013/09/25 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
行政办公室岗位职责
2014/03/18 职场文书
银行进社区活动总结
2014/07/07 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
中学生检讨书1000字
2014/10/28 职场文书
离职报告格式
2014/11/04 职场文书
考察邀请函范文
2015/01/31 职场文书
端午节活动总结报告
2015/02/11 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python