路由

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501

客户端(例如浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask程序实例。程序实例需要知道对每个URL请求运行哪些代码,所以保存了一个 URL 到Python函数的映射关系。像这种处理URL和函数之间关系的程序称为路由。

在Flask程序中定义路由的最简便方式,是使用程序实例提供的app.route 修饰器,把修饰的函数注册为路由。下面的代码为使用修饰器声明路由的方法。

@app.route('/')

def hello_world():

    return 'Hello World!'

说明:修饰器是Python语言的标准特性,可以使用不同的方式修改函数的行为。常用方法是使用修饰器把函数注册为事件的处理程序。

(1)变量规则

要给 URL 添加变量部分,你可以把这些特殊的字段标记为<variable_name>, 这个部分将会作为命名参数传递到你的函数。规则可以用<converter:variable_name>指定一个可选的转换器。

图标 (35)

  实例02  根据参数输出相应信息

创建02文件夹,在该文件夹下创建add_params.py文件,以实例01代码为基础,添加如下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

    return 'Hello World!'

@app.route('/user/<username>')

def show_user_profile(username):

    # 显示该用户名的用户信息

    return 'User %s' % username

@app.route('/post/<int:post_id>')

def show_post(post_id):

    # 根据ID显示文章,ID是整型数据

    return 'Post %d' % post_id

if __name__ == '__main__':

    app.run(debug=True)

上述代码中使用了转换器,主要有下面几种:

l  int:接受整数

l  float:同int,但是接受浮点数

l  path:和默认的相似,但也接受斜线

运行add_params.py文件,运行结果如图8和图9所示。

图8  获取用户信息

图9  获取文章信息

(2)构造 URL

当Flask匹配URL后,可以使用url_for()函数构造URL,在这个函数中,可以使用函数名作为第一个参数,也可以使用应用URL规则定义的变量名称作为参数。

图标 (35)

  实例03  使用url_for()函数获取URL信息

创建03文件夹,在该文件夹下创建url_for.py,以实例02为基础添加如下代码:

from flask import Flask , url_for

app = Flask(__name__)

@app.route('/')

def hello_world():

    return 'Hello World!'

@app.route('/user/<username>')

def show_user_profile(username):

    # 显示该用户名的用户信息

    return 'User %s' % username

@app.route('/url/')

def get_url():

    # 根据ID显示文章,ID是整型数据

    return url_for('show_post',post_id=2)

@app.route('/post/<int:post_id>')

def show_post(post_id):

    # 根据ID显示文章,ID是整型数据

    return 'Post %d' % post_id

if __name__ == '__main__':

    app.run(debug=True)

上述代码中,设置“/url/”路由,访问该路由时,返回“show_post”函数的URL信息。运行结果如图10所示。

图10  url_for()函数应用效果图

(3)指定HTTP 方法

HTTP(与Web应用会话的协议)有许多不同的访问URL方法。默认情况下,路由只响应GET请求,但是通过route()装饰器传递methods参数可以改变这个行为。代码如下:

import request

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

def login():

    if request.method == 'POST':

        do_the_login()

    else:

        show_the_login_form()

HTTP方法(也经常被称作“谓词”)通知服务器,即客户端对请求的页面所做的处理。常见的方法如表1所示。

表1  常用的HTTP方法及说明

方  法  名

说    明

GET

浏览器通知服务器:将获取页面上的信息并发给浏览器

HEAD

浏览器通知服务器:获取信息,但是只关心消息头。应用应像处理GET请求一样来处理它,但是不分发实际内容。在Flask中你完全不需要人工干预,底层的Werkzeug库已经替你处理好了

POST

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

PUT

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

DELETE

删除给定位置的信息

OPTIONS

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

 

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

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

相关文章

昇思25天学习打卡营第5天|网络构建

一、简介&#xff1a; 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff08;这个类和pytorch中的modul类是一样的作用&#xff09;&#xff0c;也是…

std::bind与std::ref配合使用时要注意的几个问题

目录 1 假如输入函数的变量是左值非常量引用&#xff0c;则该变量在std::bind中只能用std::ref修饰&#xff0c;不能用cref&#xff0c;否则编译失败&#xff1a; 2 假如输入函数的变量是左值常量引用&#xff0c;则该变量在std::bind中既可以用std::ref修饰&#xff0c;也可…

Mathtype7在Word2016中闪退(安装过6)

安装教程&#xff1a;https://blog.csdn.net/Little_pudding10/article/details/135465291 Mathtype7在Word2016中闪退是因为安装过Mathtype6&#xff0c;MathPage.wll和MathType Comm***.dotm)&#xff0c;不会随着Mathtype的删除自动删除&#xff0c;而新版的Mathtype中的文件…

Inpaint软件最新版下载【安装详细图文教程】

​根据使用者情况表明在今天的数字时代&#xff0c;我们经常会遇到需要处理图形的情况&#xff0c;然而&#xff0c;当我们遇到水印在图形上&#xff0c;我们就需要寻找一个有效的方式来去除它&#xff0c;Inpaint软件就是一个非常实用的工具&#xff0c;它能够帮助我们去除水印…

小柴带你学AutoSar系列一、基础知识篇(6)车规级MCU入门RH850

flechazohttps://www.zhihu.com/people/jiu_sheng 小柴带你学AutoSar总目录https://blog.csdn.net/qiansh

【web2】jquary,bootstrap,vue

文章目录 1.jquary&#xff1a;选择器1.1 jquery框架引入&#xff1a;$("mydiv") 当成id选择器1.2 jquery版本/对象&#xff1a;$(js对象) -> jquery对象1.3 jquery的页面加载事件&#xff1a;$ 想象成 window.onload 1.4 jquery的基本选择器&#xff1a;$()里内容…

GIM: Learning Generalizable Image Matcher From Internet Videos

【引用格式】&#xff1a;Shen X, Yin W, Mller M, et al. GIM: Learning Generalizable Image Matcher From Internet Videos[C]//The Twelfth International Conference on Learning Representations. 2023. 【网址】&#xff1a;https://arxiv.org/pdf/2402.11095 【开源代…

Linux_软硬链接

目录 1、软链接 2、软链接的使用方式 3、软链接的删除 4、硬链接 5、硬链接的使用方式 6、软硬链接的使用场景 7、软硬链接的区别 结语 前言&#xff1a; 在Linux操作系统中&#xff0c;有软链接和硬链接&#xff0c;他们是一种特殊的文件引用&#xff0c;主要用于与…

Cyber Weekly #12

赛博新闻 1、Anthropic发布Claude 3.5 Sonnet 本周五&#xff08;6月21日&#xff09;凌晨&#xff0c;Anthropic宣布推出其最新的语言模型Claude 3.5 Sonnet&#xff0c;距离上次发布Claude3才过去3个月。Claude3.5拥有20万token的长上下文窗口&#xff0c;目前已经在Claude…

HCIA 19 结束 企业总部-分支综合实验(下)

3.6出口NAT配置可以访问互联网 配置NAT使内网可以访问公网8.8.8.8&#xff0c;当前总部PC1 PING不通公网地址8.8.8.8。 3.6.1总部配置NAT访问互联网 步骤1&#xff1a;配置NAT acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # interface GigabitEthern…

Redis预备知识

一.预备知识 1.基本全局命令 set key value 将key的值设置成value get key 得到key的值 keys [pattern] 查看匹配pattern的所有key 比如h?llo匹配hallo&#xff0c;hbllo&#xff0c;hcllo……只要用一个符号将&#xff1f;代替即可 比如h*llo匹配hllo&#xff0c;heeeello…

【图像识别系统】昆虫识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统&#xff0c;使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法&#xff08;CNN&#xff09;模型。通过对10种常见的昆虫图片数据集&#xff08;‘蜜蜂’, ‘甲虫’, ‘蝴蝶’, ‘蝉’, ‘蜻蜓’, ‘蚱蜢’, ‘蛾’, ‘蝎子’, ‘…

02_ESP32+MicroPython 点亮LED灯

书接第1篇《01_ESP32 MicroPython开发环境搭建_eps32开发板-CSDN博客》 想要让一个引脚输出高电平&#xff0c;只需要找到对应的GPIO然后通过on()或者value(1)操作就可以&#xff0c;同理如果想要输出低电平让LED灯灭&#xff0c;只需要调用off()或者value(0)就行。 一、点亮…

【ACM出版】2024人工智能与自然语言处理国际学术会议(AINLP 2024,7月19-21)

2024人工智能与自然语言处理国际学术会议&#xff08;AINLP 2024&#xff09;将于2024年7月19-21日在中国珠海召开&#xff0c;该会议作为第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09;分会场召开。 本次会议主要围绕“人工智能与自然语言处…

【网络安全的神秘世界】SQL注入漏洞

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 本章知识使用的靶场&#xff1a;DVWA 一、漏洞简介 SQL&#xff1a;结构化查询语言&#xff0c;是一种特殊的编程语言&#…

智能风控(原理、算法与工程实践)项目一

本文介绍该书第一章的项目&#xff1a;运用CART树进行规则挖掘&#xff0c;具体代码如下 #!/usr/bin/env python # coding: utf-8 # In[1]: import pandas as pd import numpy as np import os # In[2]: data pd.read_excel( ./data_for_tree.xlsx) # In[3]: data.h…

《三国:谋定天下》成为了SLG游戏现象级的成功案例

原标题&#xff1a;《三国&#xff1a;谋定天下》引领SLG游戏新潮流&#xff0c;B站股价五个飙升了30% 易采游戏网6月23日&#xff1a;B站作为年轻人喜爱的文化社区和视频平台&#xff0c;再次用一款新的游戏证明了其在游戏发行领域的独到眼光与强大实力。最近大火的策略角色扮…

Linux简单使用——配置仓库

虚拟机和Xshell连接 在虚拟机上打开终端查看IP 在Xshell上建立会话 输入ssh root192.168.231.123 防火墙关闭 、 重启计算机命令 删除文件 然后ls查看 清除之前的垃圾 最后做一下命令缓存

Java程序之简单“记事本”

要求&#xff1a;如下图所示&#xff0c;记事本具有新建、打开文本、保存、关闭等功能。 算法思路&#xff1a; 这是一个使用Java Swing库创建的简单文本编辑器。它包含一个菜单栏&#xff0c;其中包含“文件”菜单以及四个子菜单项&#xff1a;“新建”、“打开”、“保存”和…

STM32CubeMX 创建 MDK 工程

STM32CubeMX 创建 MDK 工程 MDK (Keil uVision) MDK (Keil uVision) 是 Arm 公司开发的一款集成开发环境 (IDE)&#xff0c;专门用于 Arm 架构的嵌入式系统开发。它提供了全面的功能&#xff0c;包括&#xff1a; 代码编辑器&#xff0c;支持语法高亮、代码补全和错误检测调试…