建立和執行管理命令

要使用命令列或其他服務(不使用使用者/請求)在 Django 中執行操作,你可以使用 management commands

可以根據需要匯入 Django 模組。

對於每個命令,需要建立一個單獨的檔案:myapp/management/commands/my_command.py
managementcommands 目錄必須有一個空的__init__.py 檔案)

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

# import additional classes/modules as needed
# from myapp.models import 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()

這裡的類名命令是必需的,它擴充套件了 BaseCommand 或其子類之一。

管理命令的名稱是包含它的檔案的名稱。要在上面的示例中執行該命令,請在專案目錄中使用以下命令:

python manage.py my_command

請注意,啟動命令可能需要幾秒鐘(因為匯入了模組)。所以在某些情況下,建議建立 daemon 程序而不是 management commands

更多關於管理命令