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中内建函数的简单用法说明
May 05 Python
简单谈谈python中的lambda表达式
Jan 19 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
Scrapy-Redis结合POST请求获取数据的方法示例
May 07 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
python集合常见运算案例解析
Oct 17 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
keras 如何保存最佳的训练模型
May 25 Python
Python 代码调试技巧示例代码
Aug 11 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(一)
2012/03/21 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
2013/11/21 Javascript
关于JS数组追加数组采用push.apply的问题
2014/06/09 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
JavaScript简介
2015/02/15 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
react中使用swiper的具体方法
2018/05/15 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
小程序实现录音功能
2020/09/22 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
Python中使用动态变量名的方法
2014/05/06 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
python读写LMDB文件的方法
2018/07/02 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
2015员工年度考核评语
2015/03/25 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
学校远程教育工作总结
2015/08/11 职场文书
中学教师教学工作总结
2015/08/13 职场文书
学习党章心得体会2016
2016/01/15 职场文书