Django自定义manage命令实例代码

yipeiwu_com6年前Python基础

manage.py是在我们创建Django项目的时候就自动生成在根目录下的一个命令行工具,它可以执行一些简单的命令,其功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTINGS_MODULE环境变量为当前project的setting.py文件。

manage.py的代码是这样的:

#!/usr/bin/env python 
import os 
import sys 
 
if __name__ == "__main__": 
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "adl_lrs.settings") 
 
  from django.core.management import execute_from_command_line 
 
  execute_from_command_line(sys.argv)

excute_from_command_line()函数会根据命令行参数解析出命令的名称,根据命令名称调用相应的Command执行命令。Command位于各个管理模块的commands模块下面。
所以要自定义manage命令,只需要在app下management目录commands目录下建立目标文件。

需要注意的是,不是所有的.py文件都会被识别为命令的,需引用了BaseCommand的才能被正确识别,而且我们的命令类要继承于BaseCommand它才可以。

示例代码:

from django.core.management.base import BaseCommand,CommandError    
import datetime 
import pytz 
 
class Command(BaseCommand): 
  def handle(self, *args, **options): 
    now=datetime.datetime.now() 
    now=now.replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0).replace(tzinfo=pytz.timezone('UTC')) 
    br1=datetime.datetime(2016,6,29) 
    br1=br1.replace(hour=0).replace(minute=0).replace(second=0).replace(microsecond=0).replace(tzinfo=pytz.timezone('UTC')) 
    br2=now 
    print br1,br2 

总结

以上就是本文关于Django自定义manage命令实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

详解Python的Django框架中的中间件

什么是中间件 我们从一个简单的例子开始。 高流量的站点通常需要将Django部署在负载平衡proxy之后。 这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(requ...

使用python实现语音文件的特征提取方法

使用python实现语音文件的特征提取方法

概述 语音识别是当前人工智能的比较热门的方向,技术也比较成熟,各大公司也相继推出了各自的语音助手机器人,如百度的小度机器人、阿里的天猫精灵等。语音识别算法当前主要是由RNN、LSTM、D...

Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程

Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程

rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思。前面还有个rabbit单词,就是兔子的意思,和python语言叫python一样,老外还是...

numpy下的flatten()函数用法详解

flatten是numpy.ndarray.flatten的一个函数,其官方文档是这样描述的: ndarray.flatten(order='C') Return a copy of...

python Tcp协议发送和接收信息的例子

需要建立2个文件,一个作为客户端,一个作为服务端 文件一 作为客户端client,文件二作为服务端server 文件一 # client 客户端 # TCP必须建立连接 import...