Flask框架学习笔记之路由和反向路由详解【图文与实例】


Posted in Python onAugust 12, 2019

本文实例讲述了Flask框架学习笔记之路由和反向路由。分享给大家供大家参考,具体如下:

#-*- coding:utf-8 -*-
from flask import Flask, request, url_for
app = Flask(__name__)
# 路由
@app.route("/")
# 视图函数
def index():
  return "<h1>Hello World!</h1>"
# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
  return "<h1>Hello User!</h1>"
# 动态路由。使用<>圈起来,输入网址时输入
@app.route("/users/<id>")
# 传入id参数
def user_id(id):
  return "<h1>Hello user: " + id
# 也可以不传参显示动态参数
@app.route("/query_user")
def query_user():
  id = request.args.get('id')
  return "query_user: " + id
# 反向路由,通过视图函数反导出url地址
@app.route("/query_url")
def query_url():
  return "query_url: " + url_for('query_user')
if __name__ == '__main__':
  app.run()

最基础的路由:@app.route('/'),也为根路由,程序运行后使用浏览器打开http://127.0.0.1:5000/即可访问。

# 路由
@app.route("/")
# 视图函数
def index():
  return "<h1>Hello World!</h1>"

Flask框架学习笔记之路由和反向路由详解【图文与实例】

视图函数就是被当前路由所修饰的函数,return返回html相关内容。

路由也可以修改当前的http方法来打开,flask路由默认的http方法是GET,这里使用methods=['POST']将http方法改为POST。

访问网页时要更改http方法:

# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
  return "<h1>Hello User!</h1>"

Flask框架学习笔记之路由和反向路由详解【图文与实例】

flask路由也可接受动态参数,动态参数需要使用<>包裹表示。

# 动态路由。使用<>圈起来,输入网址时输入
@app.route("/users/<id>")
# 传入id参数
def user_id(id):
  return "<h1>Hello user: " + id

Flask框架学习笔记之路由和反向路由详解【图文与实例】

需要在网址后输入任意合法的值来传入动态参数。

也可以使用request方法实现动态参数传递。

# 也可以不传参显示动态参数
@app.route("/query_user")
def query_user():
  id = request.args.get('id')
  return "query_user: " + id

Flask框架学习笔记之路由和反向路由详解【图文与实例】

输入网址时最后要加上?id=任意值,即可达到目的。

反路由通过视图函数表现出url地址,需使用url_for方法指向一个url。

# 反向路由,通过视图函数反导出url地址
@app.route("/query_url")
def query_url():
  return "query_url: " + url_for('query_user')

Flask框架学习笔记之路由和反向路由详解【图文与实例】

本质是根据函数名反向生成url,使用函数 url_for() 来针对一个特定的函数构建一个 URL。它能够接受函数名作为第一参数,以及一些关键字参数, 每一个关键字参数对应于 URL 规则的变量部分。未知变量部分被插入到 URL 中作为查询参数。

这里用到了chrome浏览器的一个postman插件,具体安装方法参考https://segmentfault.com/a/1190000008512891

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
Python类方法__init__和__del__构造、析构过程分析
Mar 06 Python
Python中join和split用法实例
Apr 14 Python
Django小白教程之Django用户注册与登录
Apr 22 Python
深入理解Python中装饰器的用法
Jun 28 Python
Python如何实现守护进程的方法示例
Feb 08 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
命令行运行Python脚本时传入参数的三种方式详解
Oct 11 Python
Python 基于jwt实现认证机制流程解析
Jun 22 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
利用python实现汉诺塔游戏
Mar 01 Python
python实现图片压缩代码实例
Aug 12 #Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 #Python
一行Python代码过滤标点符号等特殊字符
Aug 12 #Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 #Python
Django认证系统实现的web页面实现代码
Aug 12 #Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 #Python
django-filter和普通查询的例子
Aug 12 #Python
You might like
php不用正则采集速度探究总结
2008/03/24 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
详解利用jsx写vue组件的方法示例
2017/07/17 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
2020/03/12 jQuery
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
python字符串排序方法
2014/08/29 Python
python服务器与android客户端socket通信实例
2014/11/12 Python
python实现逐个读取txt字符并修改
2018/12/24 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
Python中的类与类型示例详解
2019/07/10 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
法国在线药房:DoctiPharma
2020/10/21 全球购物
XML文档面试题
2015/08/05 面试题
医学生个人求职信范文
2013/09/24 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
教师工作失职检讨书
2014/09/18 职场文书
银行自荐信范文
2015/03/25 职场文书
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers