Django 笔记 URL 分发原理

做了2个页面,觉得大致了解了参数和页面如何传递了,我们来看下原理。

一个HTTP请求发送到http://127.0.0.1:8000/hello/

Django会第一时间去找setting文件的setting.py


ROOT_URLCONF = 'untitled2.urls'



当访问 URL /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。 然后按顺序逐个匹配URLconf里

的URLpatterns,直到找到一个匹配的。 当找到这个匹配 的URLpatterns就调用相关联的view函数,并把

HttpRequest 对象作为第一个参数。 (稍后再给出 HttpRequest 的更多信息) (我们将在后面看到

HttpRequest的标准)

正如我们在第一个视图例子里面看到的,一个视图功能必须返回一个HttpResponse。 一旦做完,Django将完

成剩余的转换Python的对象到一个合适的带有HTTP头和body的Web Response,(例如,网页内容)。


总结一下:

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

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

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

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

5. 视图函数返回一个HttpResponse

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





当一个动态视图生成的时候,例如

import datetime

now = datetime.datetime.now()

now

datetime.datetime(2016, 12, 13, 14, 9, 39, 2731)

>>> print now

201626 14:09:39.002731

其实这些都是python的代码,django并没有去解释任何代码。

view.py

from django.http import HttpResponse
import datetime
def hello(request):
return HttpResponse("Hello world")
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)


urls.py

from django.conf.urls.defaults import *
from mysite.views import hello, current_datetime
urlpatterns = patterns('',
('^hello/$', hello),
('^time/$', current_datetime),
)


生成日期的http请求经过url转向view,生成结果后返回前台


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值