DjangoX 入口启动脚本简析
主体
if __name__ == "__main__":
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__))
sys.path.insert(0, os.path.join(PROJECT_ROOT, os.pardir))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
包路径
sys.path.insert(0, os.path.join(PROJECT_ROOT, os.pardir))
sys.path.insert可用于将某目录加入到python-path(Python的包搜索路径列表),这样当前项目的其他地方可以直接import被加入的目录下面的所有包。这里是将父目录加入的包搜索路径。这样就可以import xadmin
或 import xutils
设置 Django settings位置
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "demo.settings")
这个是使用Django必须做的第一步。“demo.settings” 是settings.py文件相对于工作目录的路径表示
比如我们需要在一个独立的脚本中使用Django模型,只需 加入:
os.environ["DJANGO_SETTINGS_MODULE"] = "you_pro_path.settings"
可以看出settings.py是Django项目入口的载体
启动
execute_from_command_line(sys.argv)
Django项目启动命令的执行,执行到这里进程进入事件循环,等待请求