通过命令python manage.py runserver ip:port运行整个项目。
执行完命令之后:
(1)在manage.py文件,添加settings.py的存储路径到系统环境变量中,方便其他django内置的模块获取settings.py文件中的内容;
(2)在manage.py文件,解析命令行参数:
①判断项目的"启动命令"。如果项目的启动命令不是runserver,那么就不会进行启动服务器相关的操作;
②如果是runserver,那么会进行启动服务器相关的操作:
a、此时会解析ip、port,并且设置到变量中。(注意:如果没有传递ip、port的话,那么会使用默认的ip和port,分别是127.0.0.1和8000);
b、django内部会调用django.core.servers.basehttp.get_internal_wsgi_application返回一个WSGIHandler类的实例--wsgi_handler对象(也指application对象)。用来进行处理请求和响应数据等操作;
get_internal_wsgi_application源码:
def get_internal_wsgi_application():
from django.conf import settings
app_path = getattr(settings, 'WSGI_APPLICATION')
if app_path is None:
return get_wsgi_application() (返回一个WSGIHandler实例)
...