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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python基于DES算法加密解密实例
Jun 03 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Django实现快速分页的方法实例
Oct 22 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
flask框架路由常用定义方式总结
Jul 23 Python
Django框架 信号调度原理解析
Sep 04 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 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调用google接口生成二维码示例
2014/04/28 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
微信小程序 Flex布局详解
2016/10/09 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
JavaScript判断浏览器及其版本信息
2017/01/20 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
JavaScript设计模式之享元模式实例详解
2019/01/17 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
jQuery事件委托代码实践详解
2019/06/21 jQuery
关于Layui Table隐藏列问题
2019/09/16 Javascript
Python学习资料
2007/02/08 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python hashlib模块的使用示例
2020/10/09 Python
python音频处理的示例详解
2020/12/23 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
苹果音乐订阅:Apple Music
2018/08/02 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
会计应聘求职信范文
2013/12/17 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
四年级学生评语大全
2014/04/21 职场文书
篮球比赛口号
2014/06/10 职场文书
住房租房协议书
2014/08/20 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
荒岛余生观后感
2015/06/09 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
八年级历史教学反思
2016/02/19 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
Spring Data JPA框架Repository自定义实现
2022/04/28 Java/Android
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android