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实现的各种排序算法代码
Mar 04 Python
使用Python的Bottle框架写一个简单的服务接口的示例
Aug 25 Python
Pandas 合并多个Dataframe(merge,concat)的方法
Jun 08 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
python实现自动化上线脚本的示例
Jul 01 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
wxPython实现文本框基础组件
Nov 18 Python
Python enumerate内置库用法解析
Feb 24 Python
Python opencv相机标定实现原理及步骤详解
Apr 09 Python
详解Python中namedtuple的使用
Apr 27 Python
Python实现为PDF去除水印的示例代码
Apr 03 Python
Python 第三方库 openpyxl 的安装过程
Dec 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递归列出所有文件和目录的代码
2008/09/10 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
对pytorch网络层结构的数组化详解
2018/12/08 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
django2.2 和 PyMySQL版本兼容问题
2020/02/17 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
企业为何需要商业计划书
2013/12/26 职场文书
新员工欢迎词
2014/01/12 职场文书
学生保证书范文
2014/04/28 职场文书
法制宣传标语
2014/06/23 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
2014年司法所工作总结
2014/11/22 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
工作时间调整通知
2015/04/24 职场文书
学校社团活动总结
2015/05/07 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书