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的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
下载官网python并安装的步骤详解
Oct 12 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
python scatter函数用法实例详解
Feb 11 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
python中sys模块的介绍与实例
Apr 17 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原型模式
2014/11/25 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
2013/07/09 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
uni app仿微信顶部导航条功能
2019/09/17 Javascript
解决antd datepicker 获取时间默认少8个小时的问题
2020/10/29 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Python 实现数组相减示例
2019/12/27 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
关于读书的演讲稿800字
2014/08/27 职场文书
违纪检讨书范文
2015/01/27 职场文书
Filebeat 采集 Nginx 日志的方法
2021/03/31 Servers
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP
如何利用Python实现一个论文降重工具
2021/07/09 Python