django学习笔记(三)路由配置

路由配置
path()函数

from django.urls import path
path(route, views, name = None)

参数:
1.route:字符串类型,匹配的请求路径
2.views:指定路径所对应的试图处理函数的名称
3.name:为地址起别名,在模板中地址反向解析时使用

path转换器
语法<转换器类型:自定义名>
作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数
例:path('page/<int:page>', views.xxx)在这里插入图片描述
urls的path有顺序之分,先匹配第一个再匹配第二个以此类推在这里插入图片描述
urls.py

#http://127.0.0.1:8000/整数/操作符/整数
    path('<int:n>/<str:op>/<int:m>',views.cal_view)

views.py


def cal_view(request,n,op,m):
	if(op not in ['add', 'sub', 'mul']):
		return HttpResponse('your op is wrong')
	result = 0
	if op == 'add':
		result = n + m
	if op == 'sub':
		result = n - m
	if op == 'mul':
		result = n * m
	html = '结果为%s'%(result)
	return HttpResponse(html)

路由配置2
re_path()函数
在url的匹配过程中可以使用正则表达式进行精确匹配
语法:python re_path(reg, view, name = xxx)
正则表达式为命名分组模式(?P<name>pattern);
匹配提取参数后用关键字传参方式传递给视图函数

例:运算器有位数上的要求 限制在2位数
#http://127.0.0.1:5000/20/mul/40 可匹配
#http://127.0.0.1:500/200/mul/400 不可匹配
urls.py
re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>\d{1,2})$',views.cal2_view)
^开始 $表结束

(?P\d{1,2}) :x组 \d表示整数 {1,2}表示1到2位
(?P\w+):op组 \w表字符 +表多个

views.py

def cal2_view(request, x, op, y):
	html = 'x:%s op:%s y:%s'%(x, op , y)
	return HttpResponse(html)

练习
访问地址:
http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字
http://127.0.0.1:8000/birthday/一到两位数字/一到两位数字/四位数字
输出:生日为:xxxx年xx月xx日
urls.py

re_path(r'^birthday/(?P<year>\d{4})/(?P<mon>\d{2})/(?P<day>\d{2})$',views.bir_view),
re_path(r'^birthday/(?P<mon>\d{2})/(?P<day>\d{2})/(?P<year>\d{4})$',views.bir_view)

views.py

def bir_view(request, year, mon, day):
	html = '生日为:%s年%s月%s日'%(year, mon, day)
	return HttpResponse(html)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值