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代码(逐级优化)
May 25 Python
python实现rest请求api示例
Apr 22 Python
举例讲解Python中的Null模式与桥接模式编程
Feb 02 Python
python爬虫的工作原理
Mar 05 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
jupyter notebook引用from pyecharts.charts import Bar运行报错
Apr 23 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
Jun 26 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
Django 拆分model和view的实现方法
Aug 16 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
Jan 06 Python
Python使用configparser读取ini配置文件
May 25 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 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实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
破解Session cookie的方法
2006/07/28 Javascript
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
css图片自适应大小
2007/11/28 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
2016/06/03 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
Python生成随机验证码的两种方法
2015/12/22 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Python global全局变量函数详解
2018/09/18 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
医学护理毕业生自荐信
2013/11/07 职场文书
家长给学校的建议书
2014/05/15 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
财务会计专业求职信
2014/06/09 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
周一问候语大全
2015/11/10 职场文书
新手入门Mysql--sql执行过程
2021/06/20 MySQL
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技