路由参数处理 | 学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
简介: 快速学习路由参数处理

开发者学堂课程【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  ,如果成功。则可以进行路由匹配

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

相关文章
|
25天前
|
Python
路由系统中的 path 函数有哪些可选参数?
路由系统中的 path 函数有哪些可选参数?
36 7
|
2月前
|
移动开发 前端开发 JavaScript
vue-router学习一:什么是路由,路由分类,路由安装,路由使用,路由默认路径,history模式,默认的linkActiveClass属性,路由代码跳转
这篇文章是关于Vue.js官方路由管理器vue-router的详细介绍,包括路由的基本概念、分类、安装、使用以及在单页面应用中的路由模式和跳转方法。
157 0
vue-router学习一:什么是路由,路由分类,路由安装,路由使用,路由默认路径,history模式,默认的linkActiveClass属性,路由代码跳转
|
2月前
|
缓存 移动开发 JavaScript
《vue2进阶篇:路由》第10章:vue-router,包括基础路由、嵌套路由、路由的query参数和params参数、命名路由、router-link的replace属性、编程式路由、缓存路由组件
《vue2进阶篇:路由》第10章:vue-router,包括基础路由、嵌套路由、路由的query参数和params参数、命名路由、router-link的replace属性、编程式路由、缓存路由组件
49 2
|
7月前
|
网络架构
怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
|
7月前
|
JavaScript 前端开发 网络架构
Vue-router的动态路由:获取传递的值
Vue-router的动态路由:获取传递的值
|
7月前
|
网络架构
定义vue-router的动态路由以及如何获取传过来的动态参数
定义vue-router的动态路由以及如何获取传过来的动态参数
267 1
|
安全 API
路由的作用
路由的作用
63 1
|
消息中间件 RocketMQ 开发者
路由发现和小结|学习笔记
快速学习路由发现和小结
路由发现和小结|学习笔记
|
负载均衡 Java Nacos
Gateway 局部过滤器|学习笔记
快速学习 Gateway 局部过滤器
Gateway 局部过滤器|学习笔记
|
弹性计算 网络安全 网络架构
添加自定义路由|学习笔记
快速学习添加自定义路由
添加自定义路由|学习笔记