Flask 入门2:路由

1. 前言

在上一节中,我们使用到了静态路由,即一个路由规则对应一个 URL。而在实际应用中,更多使用的则是动态路由,它的 URL是可变的。

2. 定义一个很常见的路由地址

@app.route('/user/<username>')
def user(username):return 'User %s' % username

username 作为参数,传入 user() 函数当中。
在这里插入图片描述

需要记住的是,在定义路由的参数名时一定要与定义函数的变量名一致,否则就会引发异常。

3. Flask 提供了三种转换器

  • int:整型;
  • float:浮点数;
  • path:路径。

虽不包含正则表达式,但是可以手动添加。

from werkzeug.routing import BaseConverterclass RegexConverter(BaseConverter):def __init__(self, url_map, *items):super(RegexConverter, self).__init__(url_map)self.regex = items[0]app.url_map.converters['regex'] = RegexConverter@app.route('/user/<regex("[a-z]{3}"):user_id>')
def user(user_id):return 'User %s' % user_id

这里代码块就添加了一个正则表达式,要求三个字符。

4. 比较友好的路由定义方式

@app.route('/projects/')
def projects():return 'The project page'

路径后面加一个斜杠。

5. 也可以多个定义,同时指向同一个页面

@app.route('/works/')
@app.route('/projects/')
def projects():return 'The project page'

6. http方法

在路由定义里面也同样包括 http 的方法,即 GET、POST 等。

@app.route('/login', methods=['GET', 'POST'])

常见的 http 方法:
GET:浏览器告知服务器,只获取页面上的信息并发送给我。这是最常用的方法。

POST:浏览器告诉服务器,想在 URL 上发布新消息。并且服务器必须确保数据已存储且仅存储一次。这是 HTML 表单通常发送数据到服务器的方法。

PUT:类似 POST,但服务器可能多次触发了存储过程,并且多次覆盖掉旧值。你可能会问这有什么用,当然这是有原因的。考虑到传输中连接可能会丢失,在这种情况下浏览器和服务器之间的系统可能安全地第二次接收请求,而不破坏其他东西。因为 POST 它只触发一次,所以用 POST 是不可能的。

DELETE:删除给定位置的信息。

HEAD:浏览器告诉服务器,欲获取数据,但是只关心消息头。应像 GET 请求一样来处理它,但是不分发实际内容。在 Flask 中你完全无需人工干预,底层的 Werkzeug 库已经帮你打点好了。

OPTIONS:给客户端提供一个敏捷的途径来弄清这个 URL 支持哪些 http 方法。从 Flask 0.6 开始,实现了自动处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/249649.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全防御第五次作业

拓扑图及要求如下&#xff1a; 实验注意点&#xff1a; 先配置双机热备&#xff0c;再来配置安全策略和NAT两台双机热备的防火墙的接口号必须一致双机热备时&#xff0c;请确保vrrp配置的虚拟IP与下面的ip在同一网段如果其中一台防火墙有过配置&#xff0c;最好清空或重启&…

基于 Echarts 的 Python 图表库:Pyecahrts交互式的日历图和3D柱状图

文章目录 概述一、日历图和柱状图介绍1. 日历图基本概述2. 日历图使用场景3. 柱状图基本概述4. 柱状图使用场景 二、代码实例1. Pyecharts绘制日历图2. Pyecharts绘制2D柱状图3. Pyecharts绘制3D柱状图 总结 概述 本文将引领读者深入了解数据可视化领域中的两个强大工具&#…

因子图、边缘化与消元算法的抽丝剥茧 —— Notes for “Factor Graphs for Robot Perception“

Title: 因子图、边缘化与消元算法的抽丝剥茧 —— Notes for “Factor Graphs for Robot Perception” 文章目录 I. 前言II. 因子图的基本概念1. 因子图的定义2. SLAM 中的因子图A. 因子图的图示B. 因子图的因式C. 因子图的二分图形式 III. 边缘化与消元运算的基本原理1. 边缘化…

python基础——池

池的介绍&#xff1a; 提前创建进程池&#xff0c;防止创建的进程数量过多导致系统性能受到影响&#xff0c;在系统执行任务时&#xff0c;系统会使用池中已经创建进程/线程&#xff0c;从而防止资源的浪费&#xff0c;创建的进程/线程可以让多个进程使用&#xff0c;从而降低…

Hadoop3.x基础(3)- MapReduce

来源: B站尚硅谷 目录 MapReduce概述MapReduce定义MapReduce优缺点优点缺点 MapReduce核心思想MapReduce进程常用数据序列化类型MapReduce编程规范WordCount案例实操本地测试提交到集群测试 Hadoop序列化序列化概述自定义bean对象实现序列化接口&#xff08;Writable&#xff…

安全基础~通用漏洞3

文章目录 知识补充文件上传&#xff08;1&#xff09;ctfshow 文件上传靶场练习150-161 文件上传&#xff08;2&#xff09;ctfshow 文件上传靶场练习162-170 文件上传总结文件包含 知识补充 url编码&#xff1a;0a 换行&#xff1b;20空格&#xff1b;3c左尖括号&#xff1b;…

研发日记,Matlab/Simulink避坑指南(八)——else if分支结构Bug

文章目录 前言 背景介绍 问题描述 分析排查 解决方案 总结归纳 前言 见《研发日记&#xff0c;Matlab/Simulink避坑指南(三)——向上取整Bug》 见《研发日记&#xff0c;Matlab/Simulink避坑指南(四)——transpose()转置函数Bug》 见《研发日记&#xff0c;Matlab/Simuli…

IP 层转发分组的过程

目录 IP 层转发分组的过程 1.1 基于终点的转发 1.2 最长前缀匹配 转发表中的 2 种特殊的路由 主机路由 (host route) 默认路由 (default route) 路由器分组转发算法 1.3 使用二叉线索查找转发表 IP 层转发分组的过程 1.1 基于终点的转发 分组在互联网中是逐跳转发的。…

VMware vCenter告警:vSphere UI运行状况警报

vSphere UI运行状况警报 不会详细显示告警的具体内容&#xff0c;需要我们自己进一步确认告警原因。 vSphere UI运行状况警报是一种监控工具&#xff0c;用于检测vSphere环境中的潜在问题。当警报触发时&#xff0c;通常表示系统遇到了影响性能或可用性的问题。解决vSphere UI…

【LVGL源码移植】

LVGL源码移植 ■ LVGL源码移植一&#xff1a;下载LVGL源码二&#xff1a;修改LVGL文件夹1: 将这5个文件&#xff0c;复制到一个新的文件夹2: 简化文件&#xff0c;减少内存消耗&#xff08;去除不必要的文件&#xff09;3: 为了规范化&#xff0c;我们将下列文件进行重命名 三&…

Apache POI 处理excel文件 记录用法

Apache POI 写excel public static void write() throws IOException {//再内存中创建了一个Excel文件XSSFWorkbook excel new XSSFWorkbook();//创建一个sheet页XSSFSheet sheet excel.createSheet("info");//这里创建行对象,这里的rownum 是从0开始的,类似于数…

大数据开发之离线数仓项目(用户行为采集平台)(可面试使用)

第 1 章&#xff1a;数据仓库概念 数据仓库&#xff0c;是为企业指定决策&#xff0c;提供数据支持的&#xff0c;可以帮助企业&#xff0c;改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等。 业务数据&#xff1a…

维护管理Harbor,docker容器的重启策略

维护管理Harbor 通过HarborWeb创建项目 在 Harbor 仓库中&#xff0c;任何镜像在被 push 到 regsitry 之前都必须有一个自己所属的项目。 单击“项目”&#xff0c;填写项目名称&#xff0c;项目级别若设置为"私有"&#xff0c;则不勾选。如果设置为公共仓库&#…

【新书推荐】4.3节 键盘扫描码

本节内容&#xff1a;键盘扫描码。 ■键盘扫描码&#xff1a;8086计算机的键盘上的按键分为字符键、功能键和控制键。每一个按键都对应一个键盘扫描码。当按下按键时的扫描码称为通码&#xff0c;松开按键时的扫描码称为断码。如果按下的是字符键&#xff0c;则将其对应的一个…

假期刷题打卡--Day20

1、MT1173魔数 一个数字&#xff0c;把他乘以二&#xff0c;会得到一个新的数字&#xff0c;如果这个新数字依然由原数中那些数字组成&#xff0c;就称原数为一个魔数。输入正整数N&#xff0c;检查它是否是一个魔数&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a; …

深度学习之反向传播

反向传播英文叫做Back Propagation。 为什么需要使用反向传播 对于简单的模型我们可以用解析式求出它的损失函数的梯度&#xff0c;例如&#xff0c;其损失函数的梯度就是&#xff0c;我们可以通过我们的数学知识很容易就得到其损失函数的梯度&#xff0c;继而进行使用梯度下…

网络原理,网络通信以及网络协议

​​​​&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;网络原理,网络通信以及网络协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 网络原理概念网络通信局域网LAN广域网WAN 网络通信IP地址端口号…

HBase介绍

一、HBase简介 1.1、HBase是什么 Google在200-2006发表了GFS、MapReduce、BigTable三篇 论文 &#xff0c;号称“三驾马车”&#xff0c;开启了大数据的时代。 GFS是Google File System&#xff0c;开源实现是HDFS&#xff08;Hadoop File System&#xff09;。 MapReduce…

深度学习-搭建Colab环境

Google Colab(Colaboratory) 是一个免费的云端环境&#xff0c;旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势&#xff0c;使得编写、执行和共享代码变得更加简单和高效。Colab 在云端提供了预配置的环境&#xff0c;可以直接开始编写代码&#x…

vue2 导入使用vue-codemirror详解

目录 vue2 导入使用vue-codemirror详解1 介绍2 安装使用2.1 安装 vue-codemirror2.2 使用 codemirror2.2.1 引入 3 配置详情3.1 语言模式配置3.2 自动高度设置3.4 主题配置 4 总结 vue2 导入使用vue-codemirror详解 1 介绍 vue-codemirror是一个基于Vue的代码在线编辑器组件&…