自定义Django Command命令
来源:互联网 发布:苹果6激活应用与数据 编辑:程序博客网 时间:2024/05/17 15:57
前几天工作接触,顺便看了下文档。
首先,Django的Command命令是要放在一个app的management/commands目录下的。python2环境中,请确保management和management/commands目录内都包含__init__.py
文件。
例如Command文件名为closepoll.py,对此模块只有唯一的要求,它必须定义一个Command类并扩展自BaseCommand或其 子类。
例:
from django.core.management.base import BaseCommand, CommandErrorfrom polls.models import Pollclass Command(BaseCommand): help = 'Closes the specified poll for voting' def add_arguments(self, parser): parser.add_argument('poll_id', nargs='+', type=int) 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_arguments(self, parser): # Positional 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是命令行给出的字符串。
0 0
- 自定义Django Command命令
- 自定义Django Command命令
- django自定义command命令
- WPF自定义命令Command
- Django 自定义管理员命令
- 编写Django自定义manage命令
- Django 自定义manage.py 命令
- WPF 自定义快捷键命令(Command)(转)
- WPF 自定义快捷键命令(Command)
- django manage.py扩展自定义命令
- django manage.py扩展自定义命令
- 自定义Command
- 自定义Command
- django-Unknown command: 'syncdb'
- django basic command
- 如何自定义命令提示符Command Prompt的快捷方式
- 如何自定义命令提示符Command Prompt的快捷方式
- Command(命令)
- Android网络状态实时监听器
- 剖析淘宝TDDL
- 360安全卫士2016最新版 v10.3.0.1001n 官方版
- Java Web -- Servlet(8) Http协议详细分析--请求部分(referer)(1)
- JQuery小技巧
- 自定义Django Command命令
- Android Studio 真机调试出现Adb connection Error:远程主机强迫关闭了一个现有的连接。
- python @property理解
- iOS--- 关于枚举的使用
- Python-汉诺塔问题
- 爬楼梯 js算法
- python中的编码解码问题
- 系统调用 read
- MySQL模糊匹配中文查询问题 dbutils