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检测lvs real server状态
Jan 22 Python
python网络爬虫采集联想词示例
Feb 11 Python
Python 3.x 连接数据库示例(pymysql 方式)
Jan 19 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
详解Python 函数如何重载?
Apr 23 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Python自动化导出zabbix数据并发邮件脚本
Aug 16 Python
对Django中内置的User模型实例详解
Aug 16 Python
python 实现dict转json并保存文件
Dec 05 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 Python
Python基础之hashlib模块详解
May 06 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判断字符串长度的两种方法很实用
2015/09/22 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
PHP PDOStatement::closeCursor讲解
2019/01/30 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
NodeJS 实现手机短信验证模块阿里大于功能
2017/06/19 NodeJs
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
Python实现Logger打印功能的方法详解
2017/09/01 Python
python实现excel读写数据
2021/03/02 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python3注册全局热键的实现
2020/03/22 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
管理科学大学生求职信
2013/11/13 职场文书
体育教师自我鉴定
2014/02/12 职场文书
计算机软件专业求职信
2014/06/10 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
毕业酒会致辞
2015/07/29 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python