我阅读了 django文档和一些 SO 帖子以了解 manage.py 和 django-admin.py 之间的区别。
他们都说:
manage.py 在每个 Django 项目中自动创建。manage.py 是 django-admin.py 的一个瘦包装器,它在委托给 django-admin.py 之前为您处理两件事:
- 它将您的项目包放在 sys.path 上。
- 它设置 DJANGO_SETTINGS_MODULE 环境变量,使其指向您项目的 settings.py 文件。
所以我检查了这两个文件的源代码(最新版本,所以它是文档)。
然后我很困惑。manage.py
做第二件事:设置 DJANGO_SETTINGS_MODULE 环境变量。除此之外,我真的找不到这两个脚本之间的任何区别。
[django-admin.py]
#!/usr/bin/env python
from django.core import management
if __name__ == "__main__":
management.execute_from_command_line()
[管理.py]
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
为什么?django 文档是否已过时?或者我在这里错过了什么?将项目包放在 sys.path 上的代码在哪里?