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命令实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

pandas的to_datetime时间转换使用及学习心得

前言 昨天在网赛中做了一道题,虽然是外国人的Englis题目,但是内容很有学习的价值,值得仔细的学习,今天就把我所收获的一部分记录下来。其一:做个学习的资料记录。其二:分享出来,供大家参...

Python程序运行原理图文解析

Python程序运行原理图文解析

本文研究的主要是Python程序运行原理,具体介绍如下。 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py def...

Python之日期与时间处理模块(date和datetime)

Python之日期与时间处理模块(date和datetime)

前言 在开发工作中,我们经常需要用到日期与时间,如: 作为日志信息的内容输出 计算某个功能的执行时间 用日期命名一个日志文件的名称 记录或展示某文章的发布或修改时间...

wxpython中利用线程防止假死的实现方法

wxpython中利用线程防止假死的实现方法

前段时间我编写了一个工业控制的软件,在使用中一直存在一个问题,就是当软件检索设备时,因为这个功能执行的时间比较长,导致GUI界面假死,让用户分辨不清楚软件到底仍在执行,还是真的挂掉了。(...

python ftplib模块使用代码实例

这篇文章主要介绍了python ftplib模块使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python中默认安装的f...