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 相关文章推荐
netbeans7安装python插件的方法图解
Dec 24 Python
Python Deque 模块使用详解
Jul 04 Python
python模拟enum枚举类型的方法小结
Apr 30 Python
Python获取任意xml节点值的方法
May 05 Python
Python ftp上传文件
Feb 13 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
详解Django配置优化方法
Nov 18 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
python 等差数列末项计算方式
May 03 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
python中字符串的编码与解码详析
Dec 03 Python
Python用Jira库来操作Jira
Dec 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正则获取页面所有图片地址
2016/03/23 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
javascript实现简单的省市区三级联动
2015/05/14 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
Python统计单词出现的次数
2018/04/04 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python实现井字棋小游戏
2020/03/04 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
人事部专员岗位职责
2014/03/04 职场文书
市场营销专业自荐书
2014/06/10 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
云冈石窟导游词
2015/02/04 职场文书
科级干部培训心得体会
2016/01/06 职场文书
Java 数据结构七大排序使用分析
2022/04/02 Java/Android