在完成Django项目和应用的建立后,即可以开始编写网站应用代码,这里通过为注册页面显示一个欢迎标题,来演示Django的路由映射功能。

1)首先在djangosite/app/views.py中建立一个路由响应函数:


from django.http import HttpResponse
 
def welcome(request):
    returnHttpResponse("

Welcome to my tiny twitter!

")


该代码定义了一个函数welcome(),简单地返回一条被HttpResponse()封装的Welcome信息。

2)接下来,要通过URL映射将用户的http访问与该函数绑定起来。

在djangosite/app/目录中新建一个urls.py文件,管理应用app中的所有URL映射,其文件内容为:


from django.conf.urls import url
from . import views
 
urlpatterns = [
    url(r'',views.welcome),
]


在其中第1行引入了django.conf.urls中的url()函数,Django中的所有路由映射由该函数生成。第2行代码引入了djangosite/app/views.py模块。之后定义了关键变量urlpatterns,该变量是一个列表,保存所有由url()函数生成的路由映射。本代码中只设置了一个映射,及把所有路由映射到view.py中的welcome函数。

3)在项目URL文件djangosite/urls.py的urlpatterns中增加一项,声明对应用app中urls.py文件的引用,代码如下:


from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include                                                       #本行新增
 
urlpatterns = [
    url(r'^app/',include('app.urls')),                                                 #本行新增
   url(r'^admin/', admin.site.urls),
]


首先通过import语句引入django.conf.urls.include()函数,之后在urlpatterns列表中增加一个路径’app/’,将其转接到app.urls包,即djangosite/app/urls.py文件。这样,通过include()函数就将两个urlpatterns连接了起来。

注意:url()函数的第1个参数用正则表达式来表达URL路由,本例中’^app/’的含义是“所有以app开头的路由”。



有兴趣的读者可以看看这本书《Python高效开发实战》的结构