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 相关文章推荐
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
May 22 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python Celery定时任务的示例
Mar 13 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 12 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采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
javascript json2 使用方法
2010/03/16 Javascript
浅说js变量
2011/05/25 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
使用AngularJS编写较为优美的JavaScript代码指南
2015/06/19 Javascript
jQuery实现简洁的导航菜单效果
2015/11/23 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
学习python的前途 python挣钱
2019/02/27 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Python笔试面试题小结
2019/09/07 Python
如何在python中执行另一个py文件
2020/04/30 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
HTML5各种头部meta标签的功能(推荐)
2017/03/13 HTML / CSS
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
自动化职业生涯规划书范文
2014/01/03 职场文书
求职意向书
2014/04/01 职场文书
节能减排倡议书
2014/04/15 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
Python与C++中梯度方向直方图的实现
2022/03/17 Python