settings.pyurls.pywsgi.pyviews.py
#-*- coding:utf-8 -*-
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
(3)配置访问url
from django.conf.urls import patterns, include, url
from django.contrib import admin
from mysite.views import hello
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'mysite.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^hello/$', hello),
)
python manage.py runserver 0.0.0.0:8000
http://127.0.0.1:8000/hello/
(5)请求过程
还记得什么时候django-admin.py startproject创建文件settings.py和urls.py吗?自动创建的settings.py包含一个ROOT_URLCONF配置用来指向自动产生的urls.py. 打开文件settings.py你将看到如下:
ROOT_URLCONF = 'mysite.urls'相对应的文件是mysite/urls.py
当访问 URL
/hello/
时,Django 根据ROOT_URLCONF
的设置装载 URLconf 。 然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的。 当找到这个匹配 的URLpatterns就调用相关联的view函数,并把HttpRequest
对象作为第一个参数。 (稍后再给出HttpRequest
的更多信息) (我们将在后面看到HttpRequest的标准)正如我们在第一个视图例子里面看到的,一个视图功能必须返回一个HttpResponse。 一旦做完,Django将完成剩余的转换Python的对象到一个合适的带有HTTP头和body的Web Response,(例如,网页内容)。
总结一下:
- 进来的请求转入/hello/.
- Django通过在ROOT_URLCONF配置来决定根URLconf.
- Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
- 如果找到匹配,将调用相应的视图函数
- 视图函数返回一个HttpResponse
- Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来