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 相关文章推荐
Cython 三分钟入门教程
Sep 17 Python
Python中的urllib模块使用详解
Jul 07 Python
Django 前后台的数据传递的方法
Aug 08 Python
解决python使用open打开文件中文乱码的问题
Dec 29 Python
python递归函数绘制分形树的方法
Jun 22 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
Oct 16 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
python3.8下载及安装步骤详解
Jan 15 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
Apr 15 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 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/05/04 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
javascript 建设银行登陆键盘
2008/06/10 Javascript
js jquery数组介绍
2012/07/15 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
Underscore源码分析
2015/12/30 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
python定时器(Timer)用法简单实例
2015/06/04 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
Python常用编译器原理及特点解析
2020/03/23 Python
Python几种常见算法汇总
2020/06/02 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
经典优秀个人求职信分享
2013/12/12 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
天下第一关导游词
2015/02/06 职场文书
聘用合同范本
2015/09/21 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers