定义路由表
Django框架根据HTTP请求的URL来找到对应的视图函数,很自然的,路由表 使用一个列表对象,其中每一项记录一种URL模式与一个视图函数的对应关系:
urlpatterns = [
url(r'^$',v_index),
url(r'^about/$',v_about),
]
url()函数用来生成一个路由项,第一个参数是一个正则表达式,用来匹配 HTTP请求的URL,前缀r用来防止正则字符串被转义;第二个参数就是我们定义 的视图函数。
如果你对正则表达式很熟悉,可能会有一点疑问,为什么上面的正则表达式,都 不包含前面那个/?比如,如果用户请求的URL是/about/,那么我们的正则表达 式应当写成^/about/$才对?
嗯,是这样,简单地说,是Django框架在使用你定义的路由表之前,已经吃掉了 那个前缀的/...先这样吧,回头再细说这一点。
注册路由表
在一个有点规模的应用中,可能会存在多个开发组,每个开发组维护单独的一张路由表。 因此,在Django框架中,需要告诉Django框架使用那个路由表作为根路由表。
使用全局配置对象的ROOT_URLCONF属性来注册根路由表,应当为这个属性指定一个 具有urlpatterns变量的模块名,Django将动态导入这个模块并使用其urlpatterns 变量的值作为路由表。
因此,通常情况下,总应该将路由表变量命名为urlpatterns。
运行示例代码并思考,
1. 路由表的作用是什么?
2. 是不是路由表一定要命名为urlpatterns?