ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

路由配置一

2021-07-23 19:01:28  阅读:181  来源: 互联网

标签:匹配 views 配置 number path page 路由 view


path() 函数

导入 from django.urls import parh
语法 path(route, views, name = None)
参数

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

path 转换器

语法:<转换器类型:自定义名>

作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数 例子: path(‘page/’,views.xxx)

转换器类型作用
str匹配除了’/’之外的非空字符串
int匹配0或任何正整数。返回一个int
slug匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签
path匹配非空字段,包括路径分隔符’/’

例子

在setting中urlpatter列表中设置path

from django.url import path
urlpatterns = [
	path('page/<int:ph>',views.pagen_view), # .../page/100  匹配0到任意的正整数
	path('page/<str:ph>',views.pagen_view), # .../page/string  匹配任意字符串
	path('page/<slug:ph>',views.pagen_view), # .../page/cs-dn 匹配字母或数字、下划线、特殊字符
	path('page/<path:ph>',views.pagen_view) # .../page/a/b/c 匹配非空字段包含路径分隔符 '/'
]

在views文件中创建对视图函数 pagen_view

from django.http import HttpRespon
	def pagen_view(request,ph):
		html = f‘这是编号为{ph}的网页’
		return HttpResponse(html)

小结
        构建对应的视图函数时候形参名必须和转换器的变量名一致

练习: 小计算器
        定义一个路由的格式      http://127.0.0.1:8000/整数/操作字符串[add,sub,mul]/整数
从路由中提取数据,做相应的操作后返回给浏览器

对应效果如下
         127.0.0.1:8000/200/add/300
页面显示结果: 500

示例代码

# setting文件
from django.urls import path,re_path
from . import views
urlpatterns= [
	path('<int:a>/<str:b>/<int:c>', views.number_view)
]

# 
def number_view(request,a,b,c):
    if b not in ['add','sub','mul']:
        return HttpResponse('Your op is wrong')
    number = 0
    if b == 'add':
        number = a + c
    elif b == 'sub':
        number = a - c
    elif b == 'mul':
        number = a * c
    return HttpResponse(number)

标签:匹配,views,配置,number,path,page,路由,view
来源: https://blog.csdn.net/weixin_49518165/article/details/119040387

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有