Django 创建和运行管理命令
示例
要使用命令行或其他服务(不使用用户/请求)在Django中执行操作,可以使用managementcommands。
可以根据需要导入Django模块。
对于每个命令一个单独的文件需要被创建:myapp/management/commands/my_command.py
(该management和commands目录必须有一个空的__init__.py文件)
from django.core.management.base import BaseCommand, CommandError
# import additional classes/modules as needed
# frommyapp.modelsimport Book
class Command(BaseCommand):
help = 'My custom django management command'
def add_arguments(self, parser):
parser.add_argument('book_id', nargs='+', type=int)
parser.add_argument('author' , nargs='+', type=str)
def handle(self, *args, **options):
bookid = options['book_id']
author = options['author']
# Your code goes here
# For example:
# books = Book.objects.filter(author="bob")
# for book in books:
# book.name= "Bob"
# book.save()在这里,类名Command是必需的,它扩展了BaseCommand或其子类之一。
管理命令的名称是包含该命令的文件的名称。要在上面的示例中运行命令,请在项目目录中使用以下命令:
pythonmanage.pymy_command
请注意,启动命令可能需要花费几秒钟的时间(由于模块的导入)。因此,在某些情况下,建议创建daemon流程而不是managementcommands。
有关管理命令的更多信息
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短