02 Flask-快速上手

创建项目文件

从电脑选择一个盘符(来存放之后学习的项目文件)

这里选择以电脑C盘的桌面来做演示

在选择的盘符里面创建一个文件夹(来保存之后的学习文件)

在这里插入图片描述

使用 poetry 创建一个初始配置项(pyproject.toml)

详情参考

poetry init

在这里插入图片描述

创建虚拟环境

 poetry env use python

在这里插入图片描述

激活虚拟环境

poetry shell

在这里插入图片描述

安装 flask

poetry add flask

在这里插入图片描述

第一个flask程序

在这里插入图片描述

from flask import Flask   # 从 flask 模块导入 Flask 类。Flask 是一个轻量级的 Web 应用框架,用于创建 Web 应用。app = Flask(__name__)   # 创建一个 Flask 应用实例。__name__ 是当前模块的名字,当这个脚本作为主程序运行时,它的值是 '__main__'。这个实例是整个 Flask 应用的核心,用于配置和运行应用。@app.route('/')   # 使用 Flask 的路由装饰器@app.route()来定义一个路由。这个装饰器告诉 Flask,当用户访问根 URL(即网站的主页)时,应该调用哪个函数。在这个例子中,根 URL 就是网站的域名后面不跟任何路径。def index():   # 定义一个视图函数,这个函数与上面定义的路由关联。当用户访问与该路由匹配的 URL 时,这个函数将被调用。return 'Hello Flask'   # 这个函数返回一个字符串,这个字符串将作为 HTTP 响应发送给客户端。在这个例子中,当用户访问根 URL 时,他们将看到页面上显示 "Hello Flask"。if __name__ == '__main__':   # 这是一个条件语句,用于检查当前脚本是否是作为主程序运行。如果是,那么下面的代码将被执行。如果这个脚本被其他模块导入,__name__ 的值将是模块的名字,而不是 '__main__',因此下面的代码不会执行。app.run()   # 这行代码启动 Flask 内置的开发服务器。当这个脚本作为主程序运行时,它会启动一个本地服务器,通常在 http://127.0.0.1:5000/ 上运行。这个服务器是用于开发和测试的,不应该在生产环境中使用。

在这里插入图片描述

讲解

关键组件

导入 Flask
from flask import Flask
  • 从 flask 模块导入 Flask 类。
创建 Flask 应用实例
app = Flask(__name__)
  • 创建一个 Flask 应用实例,__name__ 表示当前模块。
定义路由和视图函数
@app.route('/')
def index():return 'Hello Flask'
  • 使用 @app.route() 装饰器定义路由。
  • 当访问对应的 URL 时,会调用关联的视图函数。
  • 在这个例子中,访问根 URL ('/') 时,返回字符串 'Hello Flask'
运行 Flask 应用
if __name__ == '__main__':app.run()
  • 检查当前脚本是否作为主程序运行。
  • 如果是,使用 app.run() 启动 Flask 内置的开发服务器。

注意事项

  • 确保使用 __name__ 而不是 'name' 来检查是否作为主程序运行。
  • Flask 的开发服务器不应用于生产环境。

路由的理解

在 Flask 中,路由确实可以类比于电脑上的文件夹路径。下面我将详细解释这个比喻:

文件系统中的路径(电脑文件夹)

在电脑文件系统中,路径是用来定位文件或文件夹的一种方式。例如,如果你有一个文件夹位于你的电脑的 C 盘,路径可能是这样的:

C:\Users\YourName\Documents\ProjectFolder

这个路径告诉我们如何从电脑的根目录(在这个例子中是 C 盘)找到特定的文件夹(ProjectFolder)。路径中的每个部分(如 Users、YourName、Documents)都是路径的一部分,它们共同定义了到达目标文件夹的完整路径。

Flask 中的路由

在 Flask Web 应用中,路由的作用非常相似。路由定义了客户端(如浏览器)如何通过 URL 访问服务器上的特定资源或执行特定的操作。例如:

@app.route('/about')
def about():return 'About Page'

在这个例子中,@app.route('/about') 定义了一个路由,它告诉 Flask,当用户访问 http://yourdomain.com/about 这个 URL 时,应该调用 about() 函数。这里的 /about 就像是文件系统中的路径,它指向了服务器上的一个特定“位置”。

路由和视图函数

在 Flask 中,每个路由都关联一个视图函数。当用户访问该路由对应的 URL 时,关联的视图函数会被执行,并返回相应的响应给客户端。这类似于在文件系统中,当你访问一个文件夹时,你可能会看到里面的内容或执行某个操作。

总结

  • 文件系统路径:定义了如何在电脑文件系统中找到一个文件夹或文件。
  • Flask 路由:定义了如何通过 URL 访问 Web 应用中的一个特定视图函数。

通过这个比喻,你可以更容易地理解 Flask 路由的概念,以及它们如何帮助组织和访问 Web 应用的不同部分。

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

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

相关文章

JavaScript 实现虚拟滚动技术

虚拟滚动 虚拟滚动(有时称为 虚拟列表、虚拟滚动条)是 JavaScript 中的一种技术,旨在优化大数据量的列表渲染,尤其是当有成千上万的数据项时,直接渲染整个列表会导致性能问题。虚拟列表通过只渲染用户视口中可见的那一…

【SQL】删除表中重复数据的方法

很久之前我写入一张sql的数据表,它里面有很多重复的内容。然后我想只保留一条原始数据: 例如上面的时间,出现了很多重复值。 我最初用的是这种方法: SELECT * FROM table_name WHERE primary_key IN (SELECT max(primary_key)F…

C++设计模式——Chain of Responsibility职责链模式

一,职责链模式的定义 职责链模式,又被称为责任链模式,是一种行为型设计模式,它让多个对象依次处理收到的请求,直到处理完成为止。 职责链模式需要使用多个对象,其中的每个对象要么处理请求,要…

数据结构——归并排序

目录 引言 归并排序 1.算法思想 2.算法步骤 3.代码实现 4.复杂度分析 5.算法优化 (1)区间优化 (2)判断区间是否有序 6.非递归实现 7.应用场景 结束语 引言 在学习完 数据结构——快速排序 后,我们接着学习一种高效的排序方法——归并排序 求点赞收藏关…

stm32之外部flash下载算法

文章目录 下载算法下载到芯片的核心思想算法程序中擦除操作执行流程擦除操作大致流程:算法程序中编程操作执行流程算法程序中校验操作执行流程 创建MDK下载算法通用流程第1步,使用MDK提供好的程序模板第2步,修改工程名第3步,修改使…

值得听歌入手的开放式耳机推荐?分享四款开放式蓝牙耳机

作为网易云十级的耳机重度患者来说,我觉得值得听歌入手的开放式耳机还得是挂耳式的开放式耳机。 因为挂耳式的开放式耳机拥有着不错的佩戴体验,挂耳式的设计还能够牢牢贴合耳廓,而且不用入耳,所以能够保持耳道空气流通&#xff0…

【软件测试】软件测试-----什么是Bug?Bug是如何分级的?Bug的生命周期是怎样的?如何描述一个Bug?

博客目录 一.软件测试的生命周期二.BUG的定义和级别2.1 bug的概念.2.2 如何描述一个bug.2.3bug的级别2.3.1 bug分级的意义.2.3.2 bug的四种级别. 三.BUG的生命周期.四.当与开发人员发生冲突该如何处理(高频面试)五.总结 一.软件测试的生命周期 软件测试贯穿于软件的整个生命周…

出现 TypeError: Cannot read properties of undefined (reading ‘getUserMedia‘) 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 调用摄像头的时候出现如下所示: Uncauht (in promise) TypeError: Cannot read properties of undefined (reading getUserMedia)截图如下: 2. 原理分析 TypeError: Cannot read properties of undefined (reading ‘…

NSS题目练习

[SWPUCTF 2022 新生赛]js_sign 打开后先随便填入,点击check,发现出现弹窗,并且尝试抓包抓不到,说明是js前端 查看源码找到js文件 补充: ‌‌ btoa函数是‌JavaScript中的一个全局函数,用于将二进制字符串…

【分享】Excel表格设置“打开密码”的两种方法

在工作中,Excel文件通常包含敏感数据,出于安全性考虑,给文件设置打开密码是非常有效的方式。接下来,小编给大家介绍两种方法,帮助你轻松为Excel文件设置密码。 方法一:在Excel表里设置“打开密码” 这是Ex…

基于yolov8的水面垃圾水面漂浮物检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的水面垃圾与漂浮物检测系统是一种高效、智能的监测解决方案。该系统利用YOLOv8这一前沿的深度学习模型,结合智能视频分析技术,对河道、湖泊等水面的垃圾漂浮物进行实时监测与识别。 YOLOv8作为YOLO系列的最新迭代,…

828华为云征文|华为云Flexus云服务器X实例部署Cockpit服务

828华为云征文|华为云Flexus云服务器X实例部署Cockpit笔记工具 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Cockpit介绍2.1 Cockpit简介2.2 Cockpit特点 三、本次实践介绍3.1 本次…

录屏软件电脑,精选5款录屏神器推荐

嘿,朋友们!想象一下,你正在与好友分享你最新的游戏成就,或是与同事展示你的最新项目进展,但却发现文字描述无法完美呈现你的精彩瞬间。别担心,在这个数字化的时代,我们有着无数种方式记录和分享…

计算机网络(一) —— 网络基础入门

目录 一,关于网络 二,协议 2.1 协议是什么,有什么用? 2.2 协议标准谁定的? 2.3 协议分层 2.4 OSI 七层模型 2.5 TCP/IP 四层模型 三,网络传输基本流程 3.1 局域网中两台主机通信* 3.2 报文的封装与…

Hadoop运行jps没有datanode节点【已解决】

1 原因: 格式化NameNode后,如果DataNode的clusterID与新的NameNode的clusterID不匹配,DataNode将无法加入集群,导致HDFS无法正常提供服务。 2 解决方式: 将新的NameNode的clusterID与DataNode的clusterID保持一致 &…

TCP/IP网络编程:Linux实现的web服务器

请求消息(Request Message) 的结构 这是客户端向服务端发送的请求消息的结构,Web服务器需要解析并响应客户端请求,从图中看出,请求信息包含请求行,消息头,消息体等三个部分,这里我们…

计算机网络 第1章 概述

文章目录 计算机网络概念计算机网络的组成计算机网络的功能三种数据交换技术电路交换(Circuit Switching)报文交换(message)分组交换 三种交换方式性能对比计算机网络的分类计算机网络的性能指标性能指标1:速率性能指标…

重磅!微信放开公众号注册限制!只要手机号,不用实名!

重磅!微信放开公众号注册限制!只要手机号,不用实名! 随着移动互联网的发展,微信公众号已经成为了许多个人与企业传递信息、分享内容的首选平台。就在近日,微信官方再次放出大招:公众号注册无需…

Seataf分布式事务的使用

一、事务的四大特征(面试题) 原子性:一个事务是不可分割的,要不都做,要不都不做一致性:事务必须是使数据库从一个一致性变成另一个一致性状态隔离性:一个事务的执行不被其他事务干扰&#xff0…

开放式耳机对耳朵伤害大吗?开放式耳机值不值得购买?

开放式耳机对耳朵的伤害相对较小。这是因为开放式耳机通常不需要将耳塞插入耳道,因此不会对耳道造成物理压力,也不会因为耳塞堵塞耳道而增加耳内压力,减少了使用耳机时可能对耳膜和耳道造成的损伤风险。同时,由于开放式耳机不会完…