一、路由

@app.route('/index')      #路由
def view_function():        #视图函数return "hello kobe"      #响应

在程序中获取路由信息
在应用中的url_map属性中保存着整个Flask应用的路由映射信息,可以通过读取这个属性获取路由信息

print(app.url_map)

如果想在程序中遍历路由信息,可以采用如下方式

for rule in app.url_map.iter_rules():   print('name={} path={}'.format(rule.endpoint, rule.rule))

二、需求

通过访问/地址,以json的方式返回应用内的所有路由信息
实现

@app.route('/')
def route_list():rules_iterator=app.url_map.iter_rules()return json.dumps({rule.endpoint:rule.rule for rule in rules_iterator})

三、动态路由(URL路径参数)

动态路由就是把请求参数作为路由中url的一部分

例如,有一个请求访问的接口地址为/users/123,其中123实际上为具体的请求参数,表明请求123号用户的信息。此时如何从url中提取出123的数据?

Flask不同于Django直接在定义路由时编写正则表达式的方式,而是采用转换器语法:

@app.route('/users/<user_id>')
def user_info(user_id):print(type(user_id))return 'hello user {}'.format(user_id)

此处的<>即是一个转换器,默认为字符串类型,即将该位置的数据以字符串格式进行匹配、并以字符串为数据类型类型、 user_id为参数名传入视图。

转换器:负责提取动态url中的id数据,并且把id数据传给视图函数
案例1:

from flask import Flask,json#static_url_path:相当于路由
app = Flask(__name__,static_url_path='/zhilong',static_folder='static')   #初始化Flask项目的服务@app.route('/')
def hello_world():return "hello world"@app.route('/user/<int:user_id>')   #动态路由就是把请求参数作为路由中url的一部分
def users(user_id):      #转换器:负责提取动态url中的id数据,并且把id数据传给视图函数print(type(user_id))return "当前访问的用户是:用户{}".format(user_id)if __name__ == '__main__':#0.0.0.0:代表当前系统中的所有的ip地址 默认端口是5000,flask的debug模式:把错误信息显示在页面中app.run(host='0.0.0.0',port=8080,debug=False)

访问路径为:http://192.168.112.217:8080/user/24

案例2:

from flask import Flask,json#static_url_path:相当于路由
app = Flask(__name__,static_url_path='/zhilong',static_folder='static')   #初始化Flask项目的服务@app.route('/')
def hello_world():return "hello world"@app.route('/user/<int(min=1):user_id>')   #动态路由就是把请求参数作为路由中url的一部分
def users(user_id):      #转换器:负责提取动态url中的id数据,并且把id数据传给视图函数print(type(user_id))return "当前访问的用户是:用户{}".format(user_id)if __name__ == '__main__':#0.0.0.0:代表当前系统中的所有的ip地址 默认端口是5000,flask的debug模式:把错误信息显示在页面中app.run(host='0.0.0.0',port=8080,debug=False)

访问路径:http://192.168.112.217:8080/user/-3,页面404,
原因@app.route(’/user/<int(min=1):user_id>’)中min=1设置为user_id最小为1,当url中传入的值小于1时,会报404

四、Flask也提供其他类型的转换器

DEFAULT_CONVERTERS = {    'default':          UnicodeConverter,    'string':           UnicodeConverter,    'any':              AnyConverter,    'path':             PathConverter,    'int':              IntegerConverter,    'float':            FloatConverter,    'uuid':             UUIDConverter,
}

【Flask】路由和URL相关推荐

  1. Flask框架——路由:URL规则与视图函数

    1. 概述 路由 是MVC架构的Web框架中相当重要的一个概念,也是本节课程的重点.顾名思意,路由就是在迷茫中找出一条路的意思.在Flask框架中,路由 就表示为用户请求的URL找出其对应的处理函数之 ...

  2. python装饰器解析请求参数_我如何在装饰器中获得Flask可选的URL参数?

    有一种更好的机制可以验证内置到Werkzeug(和Flask)中的url值.定义一个converter并像使用路由中的任何其他转换器一样使用它(例如,< int:id>). from we ...

  3. Flask路由分发及转换器

    引言 本文重点介绍,Flask路由分发及访问静态资源. 路由分发 app.route 装饰器的作用是将路由映射到视图函数,从浏览器输入对应的 url 地址,Flask程序,就会根据 url 找到对应的 ...

  4. python3 flask 路由

    原文链接: python3 flask 路由 上一篇: Python3 requests 添加 cookie 下一篇: python 运行 linux 命令 from flask import Fla ...

  5. flask -- 路由与视图函数

    原文链接 1. 概述 路由 是MVC架构的Web框架中相当重要的一个概念,也是本节课程的重点.顾名思意,路由就是在迷茫中找出一条路的意思.在Flask框架中,路由 就表示为用户请求的URL找出其对应的 ...

  6. 深入理解Flask路由(2)- werkzeug 路由系统

    本系列共三篇文章: 深入理解Flask路由的实现机制 深入理解Flask路由(2)- werkzeug 路由系统 深入理解Flask路由 (3) - 动态 url 及转换器 上一篇我们说到:Flask ...

  7. flask --- 路由与视图函数

    1.概述 路由是Model View Controller架构的Web框架中的相当重要的一个概念.路由就是在迷茫中找出一条路的意思.在Flack框架中,路由表示为用户请求的URL找出其对应的处理函数的 ...

  8. Flask 路由404 Not Found

    Flask 路由404 Not Found 新的改变 from flask import Flask app = Flask(__name__) @app.route('/') @app.route( ...

  9. Python Flask 路由配置

    有关更多的Python 开发内容,可访问:< Python Flask开发指南> Flask中通过使用route装饰器实现路由访问功能,其路由匹配URL规则基于Werkzeug的路由模块. ...

最新文章

  1. 数据洪流时代的芯片之变
  2. java中HashMap详解
  3. IP Cam须改原厂密码防黑客
  4. weblogic hibernate HqlToken
  5. 使用百度echarts仿雪球分时图(二)
  6. Atitit.跨语言数据库db  api兼容性 jdbc odbc ado oledb 增强方案
  7. 开放源代码软件及其许可证
  8. RGB-D深度相机原理
  9. Hadoop的学习前景怎么样,Hadoop培训后的职业规划
  10. linux 开发c工具箱,利用Windows10的Linux子系统搭建gcc/g++开发环境
  11. mac上使用Mounty软件报错The volume NETAC is not re-mountable in read/write mode
  12. c语言实现灰度图转换为二值图
  13. java预览openoffice_web使用openoffice实现在线预览office文档
  14. lisp不是函授型语言_LISP语言
  15. 显卡lol测试软件,GPU测试:能够轻松应对主流游戏_惠普 ENVY X360 15-bp107TX_笔记本评测-中关村在线...
  16. Power BI中的填充功能
  17. SQL ZOO 练习 —— Old JOIN Tutorial
  18. 2022年危险化学品经营单位主要负责人考试及危险化学品经营单位主要负责人考试总结
  19. RK3588S Android12 旋转系统图像
  20. 《前端》权限链接--vue前端权限控制方案详解附demo_feiyu_may的博客-CSDN博客_vue 前端权限

热门文章

  1. git推送密码_保护代码完整性(六):在 Git 上使用 PGP
  2. windows c语言能分配多少内存,Windows下C语言程序的内存布局(内存模型)
  3. asp.net 调用苹果摄像头扫描条码_苹果刚刚发布了近两年最值得买的 iPhone
  4. 引导win7+linux系统安装,win7 + ubuntu16.04LTS双系统安装(Legacy引导模式)
  5. 腾讯清新云计算数据中心主体工程明年初竣工
  6. 想避免宕机,数据中心运营商还要不断演练实践
  7. es6箭头函数_ES6语法之-箭头函数
  8. matlab模拟gpd,如何用ARMA模型预测中国GDP
  9. Py之matplotlibseaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现
  10. MAT之PSO:利用PSO+ω参数实现对一元函数y = sin(10*pi*x) ./ x进行求解优化,找到最优个体适应度