python manage.py runserver 启动方式
该命令执行的 django/core/management/commands/runserver.py 中的代码,通过调用链:1
2
3
4
5
6
7execute()
-> BaseCommand::execute()
-> handle()
-> run()
-> inner_run()
-> get_handler()
-> django.core.servers.basehttp.get_internal_wsgi_application()
获取一个 WSGI application object。
get_internal_wsgi_application() 默认调用 django.core.wsgi.get_wsgi_application(),该函数首先读取settings.WSGI_APPLICATION参数获取一个wsgi application object对象。
WSGI_APPLICATION参数设置方式参考:
By default, it’s set to
.wsgi.application, which points to the application callable in /wsgi.py.
如果该参数没有设置,则调用 django.core.wsgi.get_wsgi_application(),返回django.core.handers.wsgi.WSGIHandler类的实例。
使用uwsgi启动
当使用 django-admin startproject ProjectName 创建新app后,会生成 ProjectName/wsgi.py 文件,该文件默认也使用 django.core.wsgi.get_wsgi_application() 获取一个application object。
refference:
http://uwsgi-docs.readthedocs.io/en/latest/Python.html
因此二者默认情况下是一样的。但是个性化配置方式不同。