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 del()函数用法
Mar 24 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
Python中取整的几种方法小结
Jan 06 Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
pyspark 随机森林的实现
Apr 24 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
Django操作cookie的实现
May 26 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面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
多广告投放代码 推荐
2006/11/13 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
document.write的几点使用心得
2014/05/14 Javascript
Jquery通过JSON字符串创建JSON对象
2014/08/24 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
用python做游戏的细节详解
2019/06/25 Python
Django实现发送邮件功能
2019/07/18 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
Python partial函数原理及用法解析
2019/12/11 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
怎样写留学自荐信
2013/11/11 职场文书
文明学生事迹材料
2014/01/29 职场文书
酒店员工培训方案
2014/06/02 职场文书
合伙经营协议书范本
2014/09/13 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
婚宴新娘致辞
2015/07/28 职场文书
《颐和园》教学反思
2016/02/19 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
入门学习Go的基本语法
2021/07/07 Golang
SQL之各种join小结详细讲解
2021/08/04 MySQL