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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
Python 爬虫的工具列表大全
Jan 31 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 Python
python 产生token及token验证的方法
Dec 26 Python
python 实现视频流下载保存MP4的方法
Jan 09 Python
python中的列表与元组的使用
Aug 08 Python
Django上线部署之IIS的配置方法
Aug 22 Python
python3 logging日志封装实例
Apr 08 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Python通过kerberos安全认证操作kafka方式
Jun 06 Python
Python基础之数据结构详解
Apr 28 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
1.PHP简介
2006/10/09 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
jquery遍历checkbox介绍
2014/02/21 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
jQuery居中元素scrollleft计算方法示例
2017/01/16 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
简介Django中内置的一些中间件
2015/07/24 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
python小白切忌乱用表达式
2020/05/29 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
企业年会主持词
2014/03/27 职场文书
个人培训自我鉴定
2014/03/28 职场文书
财务担保书范文
2014/04/02 职场文书
租房安全协议书
2014/08/20 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
2014年安全员工作总结
2014/11/13 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
python数字图像处理之图像的批量处理
2022/06/28 Python