Link Search Menu Expand Document

manage.py

Table of contents

背景

程式說明

主程式

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'swirl_server.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

說明

這段 Python 程式碼是 Django 框架的標準命令行工具,用於執行各種管理任務。下面是對這段代碼的逐行解釋:

  1. #!/usr/bin/env python: 這是一個 shebang 行,告訴系統使用哪個解釋器來運行此腳本。在這種情況下,它指定使用環境中的默認 Python 解釋器。

  2. """Django's command-line utility for administrative tasks.""": 這是一個多行字符串,作為模塊的文檔字符串,描述此腳本的用途。

  3. import os: 導入 Python 標準庫中的 os 模塊,以便與操作系統進行交互。

  4. import sys: 導入 Python 標準庫中的 sys 模塊,它提供了訪問由 Python 解釋器使用或維護的一些變量和與解釋器強烈交互的函數。

  5. 定義 main 函數:def main():,這是執行 Django 管理任務的主函數。

  6. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'swirl_server.settings'): 設置環境變量 DJANGO_SETTINGS_MODULE,這告訴 Django 使用 swirl_server.settings 作為項目的設置模塊。

  7. 嘗試導入 Django 的核心管理模塊:from django.core.management import execute_from_command_line。這允許腳本執行 Django 管理命令。

  8. except ImportError as exc: 如果 import 語句失敗(通常是因為 Django 沒有安裝),則捕獲 ImportError,並給出提示信息。

  9. execute_from_command_line(sys.argv): 調用 Django 的命令行工具執行命令。sys.argv 包含從命令行傳遞給腳本的參數。

  10. if __name__ == '__main__':: 當此腳本被直接運行而不是作為模塊導入時,執行 main() 函數。

總的來說,這個腳本是 Django 應用的標準入口點,用於運行管理命令和啟動開發服務器。


Table of contents