flask第一个应用
文章目录
- 安装
- 一、编程第一步
- 二、引入配置
- 三、代码解析
安装
python环境安装的过程就不重复赘述了,flask安装使用命令pip install Flask
即可,使用命令pip show Flask
查看flask版本信息
提示:以下是本篇文章正文内容,下面案例可供参考
一、编程第一步
在项目目录下新建一个app.py,写入内容如下
from flask import Flask# 创建app实例
app = Flask(__name__)# 定义路由
@app.route('/')
# 定义视图函数
def hello_world():# 返回响应return 'Hello, World!'# 启动服务
if __name__ == '__main__':# 运行app实例app.run(debug=True)
在我们的项目目录下执行命令python app.py
可以看到下图所示,程序默认是在端口5000上运行的,如果需要使用其他端口可以把最后一行改为app.run('0.0.0.0', 8000, debug=True)
二、引入配置
上面我们跑起来的项目除了端口其他都是默认的,也没有类似数据库,session等配置信息,我们接下来在这个app.py里面加一些基本配置来适配我们的应用,配置参数都写在代码里面了
from flask import Flask, Blueprint
from flask import session
from flask_sqlalchemy import SQLAlchemy
from flask_redis import FlaskRedis# 创建app实例
def create_app(config_name):# 创建app实例app = Flask(__name__)# 加载配置app.config.from_object(config_name)app.secret_key = app.config['SECRET_KEY']# 设置缓存类型app.config['CACHE_TYPE'] ='redis'# 设置session类型app.config['SESSION_TYPE'] = 'redis'# 获取redis实例redis_client = FlaskRedis(app)@app.route('/about')def about():# 设置sessionsession['name'] = 'admin'redis_client.set('name', 'admin')# 获取sessionreturn f'about page session:{session.get("name")}, redis:{redis_client.get("name").decode('utf-8')}'# 定义路由@app.route('/home')def home():return "Hello, World!"# 404错误处理@app.errorhandler(404)def page_not_found(e):return 'This page does not exist', 404# 500错误处理@app.errorhandler(500)def internal_server_error(e):return 'Internal Server Error', 500# 返回app实例return appclass Config:# Debug模式DEBUG = True# SECRET_KEY 密钥SECRET_KEY = '631ada96b1246c6ca3a92ee8e85f5393734509313cdbc59f42527b433c5fe61d'# 数据库配置SQLALCHEMY_DATABASE_URI ='mysql://root:123456@localhost:3306/flask_demo'# 数据库配置, 禁用追踪修改SQLALCHEMY_TRACK_MODIFICATIONS = False# Redis配置# REDIS_URL ='redis://:123456@localhost:6379/0'REDIS_URL ='redis://localhost:6380/0'app = create_app(Config())if __name__ == '__main__':app.run('0.0.0.0', port=8000, debug=True)
在这部分代码里面我们配置了一个本地的mysql数据库,引入了蓝图和session SECRET_KEY密钥,定义了404和500的错误处理,这样我们基本可以实现一个小型项目的需求支持,安装mysql/redis命令可以用下面这些
# 安装 Flask-SQLAlchemy
pip install Flask-SQLAlchemy# 安装MySQL
pip install mysqlclient
# 如果选择使用 PyMySQL,需要在应用程序的开始部分添加以下代码,以确保 SQLAlchemy 使用 PyMySQL 作为驱动
import pymysql
pymysql.install_as_MySQLdb()# 安装redis
pip install Flask-Redis# 安装PyMySQL(适合与 Flask-SQLAlchemy 一起使用)
pip install PyMySQL
然后执行python app.py
访问http://127.0.0.1:8000/about
三、代码解析
from flask import Flask
从 Flask 模块中导入 Flask 类,以便创建 Flask 应用程序的实例
app = Flask(__name__)
创建一个 Flask 应用实例,其中 __name__
是一个特殊的 Python 变量。当模块直接运行时,其值为 ‘__main__
’;当模块被其他模块导入时,其值为模块的名称。将 __name__
传递给 Flask 构造函数,使得 Flask 应用能够正确找到和加载配置文件
@app.route('/')
def hello_world():return 'Hello, World!'
路由/函数/返回值定义
if __name__ == '__main__':
条件判断,检查当前模块是否被直接运行,而非作为其他模块导入
app.run(debug=True)
调用 Flask 应用实例的 run 方法,启动 Flask 内置的开发服务器。debug=True
参数启用调试模式,使得应用在代码更改时自动重新加载,并在发生错误时提供调试器
上面的我们一直只有一个app.py文件,小型项目可以应付,但是遇到中大型项目就没办法做一个模块区分了,后续将更新如何使用flask处理中大型项目
相关文章:

flask第一个应用
文章目录 安装一、编程第一步二、引入配置三、代码解析 安装 python环境安装的过程就不重复赘述了,flask安装使用命令pip install Flask即可,使用命令pip show Flask查看flask版本信息 提示:以下是本篇文章正文内容,下面案例可供…...

华为OD机试真题(Python/JS/C/C++)- 考点 - 细节
华为OD机试 2024E卷题库疯狂收录中,刷题 点这里。 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。...
【C++刷题】力扣-#628-三个数的最大乘积
题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 示例 1 输入:nums [1,2,3] 输出:6示例 2 输入:nums [1,2,3,4] 输出:24示例 3 输入:nums […...

Java项目实战II基于Java+Spring Boot+MySQL的工程教育认证的计算机课程管理平台(源码+数据库+文档)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着工程教…...

基于微信小程序实现信阳毛尖茶叶商城系统设计与实现
作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...

设计一个灵活的RPC架构
RPC架构 RPC本质上就是一个远程调用,需要通过网络来传输数据。传输协议可以有多种选择,但考虑到可靠性,一般默认采用TCP协议。为了屏蔽网络传输的复杂性,需要封装一个单独的数据传输模块用来收发二进制数据,这个单独模…...

大数据计算里的Broadcast Hash Join/Shuffle Hash Join/Sort Merge Join
文章目录 Broadcast Hash Join场景 Shuffle Hash Join场景 Sort Merge Join场景 Broadcast Hash Join 场景 大表和小小表,直接把B表加载到内存,然后读块1内容和内存中数据匹配 Shuffle Hash Join 场景 大表和小表JOIN ,小表分块后能加载…...

Java - 手写识别; 如何用spring ai和大模型做手写识别教程
识别后的文字 利用大模型提升Java手写识别:更简单、更高效 在Java场景中,我们经常需要处理手写识别的问题。过去,这类需求主要依赖于OCR技术,但其效果并不总是稳定。随着大模型的发展,使用大模型进行java手写识别成为…...

【Linux】用户权限管理:创建受限用户并配置特定目录访问权限
本文详细介绍了如何在 Linux 系统中创建一个名为 agent 的新用户,并限制其在特定目录下的权限。通过使用 useradd 命令创建用户,并使用 usermod 命令将新用户添加到现有用户组中,确保其具有适当的权限。接着,通过 chown 和 chmod …...
pgsql表分区和表分片设计
在设计 PostgreSQL 表分区和表分片时,主要目标是提高查询性能、可扩展性和数据管理的效率。以下是一些关键的设计步骤和策略: 1. 分区策略 水平分片:选择按日期进行水平分片,每天一个分片。这种策略适用于具有时间序列数据的场景…...

灵动AI ——视频创作新引擎 开启视觉奇幻之旅
灵动AI视频官网地址:https://aigc.genceai.com/ 灵动AI 科技与艺术的完美融合之作。它代表着当下最前沿的影像技术,为我们带来前所未有的视觉盛宴。...

AI设计、作图、画画工具哪个好用?看完这篇你就知道怎么选了
Stable Diffusion Stable Diffusion 是由 Stability AI 推出的开源 AI 文本到图像生成模型,以其开放性和灵活性在 AI 视觉工具领域广受欢迎。与 DALL-E 或 Midjourney 等只能依赖云计算的工具不同,Stable Diffusion 支持本地运行,也广泛兼容多…...

【python ASR】win11-从0到1使用funasr实现本地离线音频转文本
文章目录 前言一、前提条件安装环境Python 安装安装依赖,使用工业预训练模型最后安装 - torch1. 安装前查看显卡支持的最高CUDA的版本,以便下载torch 对应的版本的安装包。torch 中的CUDA版本要低于显卡最高的CUDA版本。2. 前往网站下载[Pytorch](https://pytorch.o…...
myqld二进制安装和破解数据库密码(linux)
安装和基本配置 1.首先把下载下来的mysql安装包放到本地这里下载的是5.7版本为演示 1)解压 tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local -把安装包解压到/usr/local cd /usr/local …...
防重方案-订单防重方案笔记
订单防重设计 订单重复提交概念解决方案前端防重机制后端防重机制利用Token机制基于数据库的唯一索引 Token机制方案介绍 其他 订单重复提交概念 重复提交指,连点按钮进行重复提交操作,不包括刷新后的重新下单,重新下单已非同一订单的概念。…...

HTML、JavaScript和CSS实现注册页面设计
目录 一、实现要求 二、实现页面图 1、注册页面 2.用户ID、用户名、口令验证成功后显示页面 三、用户ID、用户名、口令、确定口令验证逻辑js代码 1、验证用户ID 2、验证用户名 3、验证口令密码 四、总结 五、代码仓库 一、实现要求 综合使用HTML、JavaScript和CSS进…...
Counter对象的使用样例
1. Counter类的定义和功能说明 Counter是一个用于跟踪值出现次数的有序集合。它可以接收一个可迭代对象作为参数,并生成一个字典,其中包含每个元素作为键,其计数作为值。 2. 统计列表或字符串中元素的出现次数 示例代码: from…...

大模型中的token是什么;常见大语言模型的 token 情况
目录 大模型中的token是什么 常见大语言模型的 token 情况 大模型中的token是什么 定义 在大模型中,token 是文本处理的基本单位。它可以是一个字、一个词,或者是其他被模型定义的语言单元。简单来说,模型在理解和生成文本时,不是以完整的句子或段落为单位进行一次性处理…...
Python小白学习教程从入门到入坑------第十七课 内置函数拆包(语法基础)
一、内置函数 1.1 查看所有内置函数 内置函数:Python 提供了许多内置函数,这些函数无需导入任何模块即可直接使用。它们涵盖了各种用途,从数学运算到类型检查,再到输入输出操作等。 如何查看内置函数呢? 在Pycharm…...

动态规划 —— 路径问题-最小路径和
1. 最小路径和 题目链接: 64. 最小路径和 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-path-sum/description/ 2. 算法原理 状态表示:以莫一个位置位置为结尾 dp[i,j]表示:到达[i,j…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...