路由参数处理 | 学习笔记

简介: 快速学习路由参数处理

开发者学堂课程【Python Web 框架 Flask 快速入门路由参数处理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/603/detail/8785


路由参数处理

目录:

一、路由参数传递和解析

二、参数格式限定

一、路由参数传递和解析

1、路由参数传递和解析释义

有时我们需要将同一类  URL  映射到同一个视图函数处理,比如:

使用同一个视图函数来显示不同用户的订单信息。

路由传递的参数默认当做  string 处理。

@app.route('/orders/<order_id>')

defhello_itheima(order_id);

#此处的逻辑:去查询数据库改用户的订单信息,并返回

printtype(order_id)#  类型为  unicode

return'helloitcast%d'%order_id

2、路由传参示例

假设:

访问一个订单编号为666的网址(127.0.0.1:5000/orders/666),回

车结果希望得到订单编号为666的订单详情。

或,访问一个订单编号为123的网址

(127.0.0.1:5000/orders/123),回车结果希望得到订单编号为123

的订单详情。

这种情况,因为订单有成千上万个,我们不太可能定义多个路由

分别解析。那么,可以将(127.0.0.1:5000/orders/)这一段定义成

一个最基础路由地址,根路由。orders/  的后边就当做一个参数,传

什么参数都能用同一个路由来解析处理。这就是我们需要设定的路由

参数动态值。

如:使用同一个视图函数来显示不同用户的订单信息。

需要用“<>”来定义路由的参数,在“<>”内需要起名:

@app.route('/orders/<order_id>')

#这个“<>”里边的  order_id  就是  ID  名。

defget_order_id(order_id);

#需要在视图函数的()内填入参数名,后面的代码才能使用。

printtype(order_id)

return'order_id%s'%order_id

运行:

/Users/Andy/.virtualenvs/flask_py/bin/python2/Users/And

y/Desktop/Flask_test_demo/Flask_test_demo.py

*Runningonhttp://127.0.0.1:5000/(PressCTRL+Ctoquit)

127.0.0.1--[24/Jan/201818:21:30]"GET/orders/666

HTTP/1.1"404-

127.0.0.1--[24/Jan/201818:21:37]"GET/orders/123

HTTP/1.1"404-

看结果。

回应用界面,先输入根路由:127.0.0.1:5000/orders/  后,再加

入123或666或  aaa  等,可得到想要的订单详情。

这就是用一个路由来实现不同动态参数的解析处理。


二、参数格式限定

1、参数格式限定释义

有的时候,需要对路由做访问优化,就是对参数做格式限定。

假如单编号是123456这些数字,若换成  abc  这些字符也能读出

来,123和  aaa  不是同一类别,这时候的参数就没有做任何的限定。

<order_id>  就没有做任何的限定,它默认就是一个字串,没有什么

格式类别区分。

2、常用作路由访问优化有函数类型有: int、float

比如:订单  ID  为  int  类型

@app.route('/orders/<int:order_id>')

#路由做访问优化为订单ID是int类型

defget_order_id(order_id);

#查询数据库改用户的订单信息,并返回

printtype(order_id)

return'order_id%s'%order_id

这里指定int,会调用系统的路由转换器进行匹配和转换。

大致原理是将参数强转为  int  ,如果成功。则可以进行路由匹配

如果参数无法转换成功,就无法匹配该路由。

相关文章
|
2天前
|
Python
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
Fastapi进阶用法,路径参数,路由分发,查询参数等详解
|
2天前
|
JavaScript 前端开发 网络架构
Vue-router的动态路由:获取传递的值
Vue-router的动态路由:获取传递的值
|
2天前
|
网络架构
定义vue-router的动态路由以及如何获取传过来的动态参数
定义vue-router的动态路由以及如何获取传过来的动态参数
41 1
|
7月前
|
安全 API
路由的作用
路由的作用
34 1
|
消息中间件 RocketMQ 开发者
路由发现和小结|学习笔记
快速学习路由发现和小结
105 0
路由发现和小结|学习笔记
|
负载均衡 Java Nacos
Gateway 自定义路由断言|学习笔记
快速学习 Gateway 自定义路由断言
227 0
|
弹性计算 网络安全 网络架构
添加自定义路由|学习笔记
快速学习添加自定义路由
277 0
添加自定义路由|学习笔记
|
网络协议 网络架构
路由与交换系列之简单的路由策略与默认路由汇总路由的运用
路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性。在特定的场景 中,路由策略的6种过滤器也能单独使用,实现路由过滤。
3650 1
路由与交换系列之简单的路由策略与默认路由汇总路由的运用
|
安全 Java 开发者
路由访问映射规则|学习笔记
快速学习路由访问映射规则
105 0
|
前端开发 JavaScript 开发者
路由传参-使用 params 方式传递路由参数|学习笔记
快速学习路由传参-使用 params 方式传递路由参数
220 0
路由传参-使用 params 方式传递路由参数|学习笔记