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写的Socks5协议代理服务器
Aug 06 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
Python从零开始创建区块链
Mar 06 Python
python正则表达式匹配[]中间为任意字符的实例
Dec 25 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
May 27 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
python 将html转换为pdf的几种方法
Dec 29 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 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如何写APP接口详解
2016/08/23 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
2011/07/04 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
Python实现多态、协议和鸭子类型的代码详解
2019/05/05 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
网吧七夕活动策划方案
2014/08/31 职场文书
2014年宣传工作总结
2014/11/18 职场文书
刑事上诉状范文
2015/05/22 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
趣味运动会标语口号
2015/12/26 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
如何用python插入独创性声明
2021/03/31 Python