编写Django自定义manage命令

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值