zoukankan      html  css  js  c++  java
  • 自定义Django Command

    转:

    django的command命令是要放在一个app的management/commands目录下。python2环境中,请确保management和management/commands目录内都包含__init__.py文件

    例如command文件名为closepoll.py,对此模块只有唯一的要求,它必须定义一个command类并扩展自BaseCommand或其子类

    from django.core.management.base import BaseCommand,CommandError

    from polls.models import Poll

    class Command(BaseCommand):

      help='Close the specified poll for voting'

      def  handle(self,*args,**options):

        for poll_id in options["poll_id"]:

          try:

            poll = Poll.objects.get(pk=poll_id)

          except Poll.DoesNotExist:

            raise CommandError('Poll "%s" does not exist'%poll_id)

          poll.opened = False

          poll.save()

          self.stdout.write('Successfully closed poll "%s"' % poll_id)

    接受可选参数

    可使用add_argument()方法

    class Command(BaseCommand):

      def add_argument(self,parser):

        #postional arguments

        parser.add_argument('poll_id',nargs='+',type=int)

        #Named (optional)arguments

        parser.add_argument('--delete',

          action='store_true',

          dest='delete',

          default=False,

          help='Delete poll instead of closing it')

      def handle(self,*args,**options):

        if options['delete']:

          poll.delete()

    方法

    返回django版本号:BaseCommand.get_version() 
    命令的真正逻辑。子类必须实现这个方法。:BaseCommand.handle()

    BaseCommand的子类

    class LabelCommand

    这个管理命令接收命令行上的一个或多个参数(标签),并对它们每一个都做一些动作。

    子类不用实现handle(),但必须实现handle_label(),它将会为每个标签调用一次。

    LabelCommand.handle_label(label, **options)

    对label完成命令行的动作,label是命令行给出的字符串。

    怎么运行写好的command文件,给django-command写option选项

    python manage.py 文件名.py [app名字]

    转:http://www.codeweblog.com/%E7%BB%99django-command%E5%86%99option%E9%80%89%E9%A1%B9/

    原文:https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/

     
     
  • 相关阅读:
    away3d 4.1 alpha 教程 换装篇 <3> 人物动态换装DEMO
    书本资料汇总
    洪小瑶学IOS(一):准备起航 <ObjectiveC基础教程>笔记
    Flex 4 权威指南 学习笔记
    通过存储过程建立灵活的SQL计划任务
    javascript 未结束的字符串常量
    SQL重复记录查询
    重置数据库自增字段
    C#获取周一、周日的日期 函数类
    C# ,ASP.NET,Winform将数据导出到Execl汇总
  • 原文地址:https://www.cnblogs.com/yingqml/p/6553960.html
Copyright © 2011-2022 走看看