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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Django接受前端数据的几种方法总结
Nov 04 Python
python字典DICT类型合并详解
Aug 17 Python
pytorch训练imagenet分类的方法
Jul 27 Python
python如何生成网页验证码
Jul 28 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
Python 运行 shell 获取输出结果的实例
Jan 07 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
Python3 文章标题关键字提取的例子
Aug 26 Python
python常用运维脚本实例小结
Feb 14 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
May 18 Python
python实现学生通讯录管理系统
Feb 25 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
php字符串分割函数用法实例
2015/03/17 PHP
详解PHP的Yii框架中自带的前端资源包的使用
2016/03/31 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
JavaScript中具名函数的多种调用方式总结
2014/11/08 Javascript
js对象基础实例分析
2015/01/13 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
python抓取文件夹的所有文件
2018/02/27 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
python设置值及NaN值处理方法
2018/07/03 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
python可视化实现KNN算法
2019/10/16 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
2020/09/16 Python
Python self用法详解
2020/11/28 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
一些Solaris面试题
2015/12/22 面试题
好学生评语大全
2014/05/05 职场文书
优秀教师申报材料
2014/12/16 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
建党伟业观后感
2015/06/01 职场文书
雷锋的故事观后感
2015/06/10 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
微信小程序和php的登录实现
2021/04/01 PHP