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 map和reduce函数用法示例
Feb 26 Python
Python+Wordpress制作小说站
Apr 14 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
python使用selenium实现批量文件下载
Mar 11 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
Python多线程的退出控制实现
Aug 10 Python
什么是Python包的循环导入
Sep 08 Python
python request 模块详细介绍
Nov 10 Python
python 利用opencv实现图像网络传输
Nov 12 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
pycharm无法导入lxml的解决办法
Mar 31 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桌面中心(四) 数据显示
2007/03/11 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
YII2.0之Activeform表单组件用法实例
2016/01/09 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
深入学习jQuery Validate表单验证
2016/01/18 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
如何重置vue打印变量的显示方式
2017/12/06 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
js实现简易计算器功能
2019/10/18 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
快速了解python leveldb
2018/01/18 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
python speech模块的使用方法
2020/09/09 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
护士专业推荐信
2013/11/02 职场文书
监察建议书范文
2014/03/12 职场文书
社区巾帼文明岗事迹材料
2014/06/03 职场文书
numpy数据类型dtype转换实现
2021/04/24 Python
windows系统安装配置nginx环境
2022/06/28 Servers
Python创建SQL数据库流程逐步讲解
2022/09/23 Python