6.正向路由

2019-01-10  本文已影响0人  ddzx

必须学会正向路由

1. 路由

  将url与视图进行绑定. (路由用于维护url与视图之间 关系.)

  通过正则匹配的形式对url进行匹配, 调用相应的视图 

2. 回顾常用的正则表达式

^ : 以...开始

$ : 以...结束

单字符簇:

.  任意字符

\d 任意数字

[A-Z] 任意大写字母

[a-z] 任意小写字母

[A-Za-z] 任意字母不区分大小写

匹配数量

*  任意多个

+  一到多个

{1,9} 1到9个

{9} 9个

? 0或者1个

[^/]+ 一到多个, 直到遇到斜线

3. 现在通常网址传参数的方式有两种

1. 直接通过url后面加?的形式传递参数

2. (利于seo)  将参数与url融合到一块

例如:

https://item.jd.com/100001550349.html

https://www.douban.com/note/702775743/

3. 如何从url中获取信息

a. 假设 现在访问 图书中谋本数的详情

http://127.0.0.1:8009/book/9999.html

就访问id为9999的图书的信息

b. url绑定的时候写法

urlpatterns = [

url(r'^index/$',index,name="图书首页"),

url(r'^\d+\.html$',detail,name="图书详情"),

]

c. 如何获取 url中的信息

使用 小括号 () 将需要获取的信息 括起来, 将获取到信息自动传递给 视图函数 的第二位置参数开始.

urlpatterns = [

url(r'^index/$',index,name="图书首页"),

url(r'^(\d+)\.html$',detail,name="图书详情"),

]

d. 也可以在url信息中传递多个参数

使用多个小括号

http://127.0.0.1:8009/book/list/yanqing/1/    访问言情小说, 排序为降序 

urlpatterns = [

url(r'^index/$',index,name="图书首页"),

url(r'^(\d+)\.html$',detail,name="图书详情"),

url(r'^list/([a-z]+)/(\d)/$',list_book,name="图书列表"),

]

e. 以上都是以位置参数的形式传递给视图函数

    还可以 以关键字参数的形式传递给视图函数

格式 (?P<参数名>正则表达式)

例如:

# 以关键字形式传递参数

url(r'^list/(?P<type>[a-z]+)/(?P<order>\d)/$',list_book,name="图书列表")

上一篇下一篇

猜你喜欢

热点阅读