manage.py是在我们创建Django项目的时候就自动生成在根目录下的一个命令行工具,它可以执行一些简单的命令,其功能是将Django project放到sys.path目录中,同时设置DJANGO_SETTINGS_MODULE
环境变量为当前project的setting.py文件。
manage.py的代码是这样的:
1
2
3
4
5
6
7
8
9
10
|
#!/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它才可以。
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
|
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命令实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/lion19930924/article/details/51898975