Django的请求流程(url)

一、Django是怎么处理请求的?

  当你通过在浏览器里敲http://127.0.0.1:8000/hello/来访问Hello world消息得时候,Django在后台有些什么动作呢?

 

  所有均开始于setting文件。当你运行python manage.py runserver,脚本将在于manage.py同一个目录下查
找名为setting.py的文件。这个文件包含了所有有关这个Django项目的配置信息,均大写: TEMPLATE_DIRS
, DATABASE_NAME , 等. 最重要的设置时ROOT_URLCONF,它将作为URLconf告诉Django在这个站点中那
些Python的模块将被用到.

自动创建的settings.py包含一个ROOT_URLCONF配置用来指向自动产生的urls.py. 打开文件settings.py你将看到如下:

1 ROOT_URLCONF = 'django_day18.urls'

当创建django的项目完成时,会有三个文件,settings.py   urls.py  wsgi.py,其中urls.py就是主要用来处理请求的文件。

当访问 url /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。

其实就是当请求来到时,Django会根据settings.py里ROOT_URLCONF = 'django_day18.urls',找到urls.py.然后轮询此文件里所有

urlpatterns。直到匹配到第一个与请求的url /hello/相同的url条目为止。找到的这个 URLpatterns就调用相关联的view函数

 

来看一下urls.py文件下的内容:

 1 from django.conf.urls import include, url
 2 from django.contrib import admin
 3 from app01 import views
 4 
 5 urlpatterns = [
 6     url(r'^admin/', admin.site.urls),
 7     url(r'^login/', views.login), 8     url(r'^home/', views.home),
 9     url(r'^index/', views.index),
11 ]

 

可以看到,文件里面导入了views中的函数方法,以此建立了与urls的联系。

这是views.py文件内容:

1 from django.shortcuts import render,HttpResponse,redirect
2 
3 # Create your views here.
4 
5 def index(request):
6     print "index"
7     return HttpResponse('ok')

 

正则方式的URL映射:

 

 

 

总结一下:

  1. 进来的请求转入/hello/.


  2. Django通过在ROOT_URLCONF配置来决定根URLconf.


  3. Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。


  4. 如果找到匹配,将调用相应的视图函数


  5. 视图函数返回一个HttpResponse


  6. Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来

 

 

转载于:https://www.cnblogs.com/chenchao1990/p/5277514.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值