服务器处理网址的请求流程
》一个网址请求服务器,通过浏览器
》服务端,项目中的urls.py来处理这个请求
通过路由对应关系,匹配网址与对应视图函数的关系
如果一个网址匹配成功,那么就由它所对应的视图函数来处理功能
》视图函数的处理一般要操作两个部分
1,取数据
与数据库的连通, 通过orm来操作数据库(增删改查)
2,展现数据
主要通过render函数来操作
格式
render(请求对象,模板文件,传输的数据)
最终把render进行返回
重点关注urls.py这个文件
文件的功能
请求路径与视图函数的对应关系
常用的方法
》path()
完全匹配
path('car/', views.car),
》re_path()
-
导入
from django.urls import re_path -
使用
格式
re_path(正则表达式,视图函数)
请求网址路径中只要有cat,匹配成功
re_path(r"cat",视图函数)
效果:
当用户访问
127.0.0.1/abcatefg/
演示:
路由
视图
效果:
当前的效果
只要请求的路径里包含cat,就可以对应上视图函数
只允路径刚好为cat的时候进来
》思路,限定路径的开头和结尾
限定以c开头,限定以t结尾
正则匹配的内容写死,刚好就写成cat
正则式
效果与分析
一,
参与匹配的路径是
cat
该路径会和正则中的,匹配
二,
为什么不成功?
因为当前参与匹配的字符串是
cat/
它与正则式 r’^cat$’ 不能匹配成功
所以进不了对应的视图,报404错误
实现cat/123这种格式的匹配
要求,必需有cat开头,必需以数字结束
正则路由的写法
效果
实现cat/任意多的数字的匹配
只需要把数字那里的位置写成正则式就可以了
当前正则式的意思是
以cat开头
以数字结尾($在修饰\d)
数字可以是一次或者多次出现, 因为有加号
效果
结尾为非数字,就报错
另一例
获取路径中的数据,获取cat/123路径中的123
想要在后端拿到这串数字
》办法
一,在正则表达式中,把要获取的内容,用括号包起来
二,括号中包的内容,会作为位置参数,传递给视图函数
获取一个动态的数据,cat/数字,要获取这个串数字
用括号把要获取的数据的正则式包起来
当前用\d匹配一切数字
用+对\d进行限定,表明至少得有一个或者无数个
正则式:
视图:
结果:
练习
目标
拿到cat/ 和 /123 之间包裹的内容
比如:下面的路径,要拿hello
下面的路径要拿python