当前位置:   article > 正文

Django运行方式及处理流程总结(xianglong.me)_optional port number, or ipaddr:port.

optional port number, or ipaddr:port.

之前在网上看过一些介绍Django处理请求的流程和Django源码结构的文章,觉得了解一下这些内容对开发Django项目还是很有帮助的。所以,我按照自己的逻辑总结了一下Django项目的运行方式和对Request的基本处理流程。

一、Django的运行方式

运行Django项目的方法很多,这里主要介绍一下常用的方法。一种是在开发和调试中经常用到runserver方法,使用Django自己的web server;另外一种就是使用fastcgi,uWSGIt等协议运行Django项目,这里以uWSGIt为例。

1、runserver方法

runserver方法是调试Django时经常用到的运行方式,它使用Django自带的WSGI Server运行,主要在测试和开发中使用,使用方法如下:

  1. Usage: manage.py runserver [options] [optional port number, or ipaddr:port]
  2. # python manager.py runserver # default port is 8000
  3. # python manager.py runserver 8080
  4. # python manager.py runserver 127.0.0.1:9090

看一下manager.py的源码,你会发现上面的命令其实是通过Django的execute_from_command_line方法执行了内部实现的runserver命令,那么现在看一下runserver具体做了什么。。
看了源码之后,可以发现runserver命令主要做了两件事情:

  1. 解析参数,并通过 django.core.servers.basehttp.get_internal_wsgi_application 方法获取 wsgi handler ;
  2. 根据ip_address和port生成一个WSGIServer对象,接受用户请求

get_internal_wsgi_application 的源码如下:

  1. def get_internal_wsgi_application():
  2. """
  3. Loads and returns the WSGI application as configured by the user in
  4. ``settings.WSGI_APPLICATION``. With the default ``startproject`` layout,
  5. this will be the ``application`` object in ``projectname/wsgi.py``.
  6. This function, and the ``WSGI_APPLICATION`` setting itself, are only useful
  7. for Django's internal servers (runserver, runfcgi); external WSGI servers
  8. should just be configured to point to the correct application object
  9. directly.
  10. If settings.WSGI_APPLICATION is not set (is ``None``), we just return
  11. whatever ``django.core.wsgi.get_wsgi_application`` returns.
  12. """
  13. from django.conf import settings
  14. app_path = getattr(s
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/624427
推荐阅读
相关标签
  

闽ICP备14008679号