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中文编码那些事
Jun 25 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
python numpy库np.percentile用法说明
Jun 08 Python
详解python 支持向量机(SVM)算法
Sep 18 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
Python实战之实现简易的学生选课系统
May 25 Python
利用Python+OpenCV三步去除水印
May 28 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
2006/12/13 PHP
学习php分页代码实例
2013/10/24 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
bootstrap datepicker插件默认英文修改为中文
2017/07/28 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
学习python (2)
2006/10/31 Python
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
对python中UDP,socket的使用详解
2019/08/22 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
Python如何读取、写入JSON数据
2020/07/28 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
台湾森森购物网:U-mall
2017/10/16 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
玩具公司的创业计划书
2013/12/31 职场文书
新闻编辑求职信
2014/04/09 职场文书
公司经理任命书
2014/06/05 职场文书
医德医风个人总结
2015/02/28 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python