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脚本
Feb 10 Python
在Python中操作列表之list.extend()方法的使用
May 20 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
python实现蒙特卡罗方法教程
Jan 28 Python
基于python的ini配置文件操作工具类
Apr 24 Python
python基础 range的用法解析
Aug 23 Python
Numpy与Pytorch 矩阵操作方式
Dec 27 Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
python numpy--数组的组合和分割实例
Feb 24 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
js CSS操作方法集合
2008/10/31 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
基于jQuery选择器的整理集合
2013/04/26 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
实现音乐播放器的代码(html5+css3+jquery)
2015/08/04 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
WEB 前端开发中防治重复提交的实现方法
2016/10/26 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
谈谈JS中的!!
2017/12/07 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
详解Python装饰器由浅入深
2016/12/09 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
大学毕业感言50字
2014/02/07 职场文书
销售口号霸气押韵
2015/12/24 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android