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实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
简介Django中内置的一些中间件
Jul 24 Python
python实现ID3决策树算法
Dec 20 Python
10个Python小技巧你值得拥有
Sep 29 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python银行系统实现源码
Oct 25 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
一文轻松掌握python语言命名规范规则
Jun 18 Python
Python开发入门——迭代的基本使用
Sep 03 Python
浅谈Python响应式类库RxPy
Jun 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
dede3.1分页文字采集过滤规则详说(图文教程)续四
2007/04/03 PHP
获取远程文件大小的php函数
2010/01/11 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
php实现文件下载实例分享
2014/06/02 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python读取properties配置文件操作示例
2018/03/29 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
一道SQL面试题
2012/12/31 面试题
工程力学硕士生的自我评价范文
2013/11/16 职场文书
学习2014年全国两会心得体会
2014/03/12 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
大国崛起日本观后感
2015/06/02 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android