flask第一个应用

ops/2024/11/1 16:34:53/

文章目录

  • 安装
  • 一、编程第一步
  • 二、引入配置
  • 三、代码解析


安装

python环境安装的过程就不重复赘述了,flask安装使用命令pip install Flask即可,使用命令pip show Flask查看flask版本信息
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、编程第一步

在项目目录下新建一个app.py,写入内容如下

python">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里面加一些基本配置来适配我们的应用,配置参数都写在代码里面了

python">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命令可以用下面这些

python"># 安装 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
在这里插入图片描述

三、代码解析

python">from flask import Flask

从 Flask 模块中导入 Flask 类,以便创建 Flask 应用程序的实例

python">app = Flask(__name__)

创建一个 Flask 应用实例,其中 __name__ 是一个特殊的 Python 变量。当模块直接运行时,其值为 ‘__main__’;当模块被其他模块导入时,其值为模块的名称。将 __name__ 传递给 Flask 构造函数,使得 Flask 应用能够正确找到和加载配置文件

python">@app.route('/')
def hello_world():return 'Hello, World!'

路由/函数/返回值定义

python">if __name__ == '__main__':

条件判断,检查当前模块是否被直接运行,而非作为其他模块导入

python">app.run(debug=True)

调用 Flask 应用实例的 run 方法,启动 Flask 内置的开发服务器。debug=True 参数启用调试模式,使得应用在代码更改时自动重新加载,并在发生错误时提供调试器


上面的我们一直只有一个app.py文件,小型项目可以应付,但是遇到中大型项目就没办法做一个模块区分了,后续将更新如何使用flask处理中大型项目


http://www.ppmy.cn/ops/130175.html

相关文章

3dsMax 展管道UV

3dsMax 展管道UV 创建管道模型 https://blog.csdn.net/GoodCooking/article/details/140876371有管道模型之后,进行展UV 展开UV之后 旋转UV,大致靠左 挨个拉直拐角 挨个拉直拐角 缩放到UV里面,不要拖拽点。 水平缩放,将U…

鸿蒙生态:机遇与挑战

在数字化浪潮的推动下,操作系统作为智能设备的灵魂,正经历着前所未有的变革。华为鸿蒙系统(HarmonyOS)的推出,不仅标志着中国在操作系统领域的自主创新,也为全球开发者带来了新的机遇与挑战。本文将探讨鸿蒙…

如何用Python同时抓取多个网页:深入ThreadPoolExecutor

背景介绍 在信息化时代,数据的实时性和获取速度是其核心价值所在。对于体育赛事爱好者、数据分析师和投注行业而言,能否快速、稳定地抓取到实时比赛信息显得尤为重要。特别是在五大足球联赛中,能够在比赛进行时获得比分、控球率等实时数据&a…

cmu 15-445学习笔记-3 存储引擎

03 Database Storage-Part Ⅰ 数据库存储上半部分 数据库分层划分结构图: Disk Manager:存储引擎,管理磁盘上的文件Bufferpool Manager:管理内存的缓存池Access Methods:访问方法Operator Execution:执行…

HTML练习题 :新闻列表 包含盒子模型,内边距,外边距,鼠标悬停

结果: 代码: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>新闻列表</title><style>…

golang rocketmq开发

安装 下载 https://mxshop-files.oss-cn-hangzhou.aliyuncs.com/install.zip新建文件夹 mkdir rocketmq解压 unzip install.zip -d rocketmq/修改配置文件 cd rocketmq/install/conf/ vim broker.conf修改brokerIP1为当前IP&#xff0c;如果是本地电脑填对应IP地址&#x…

真题与解析 202309二级 青少年软件编程(Python)考级

青少年软件编程(Python)等级考试试卷(二级) 202309真题与解析 分数:100 题数:37 测试时长:60分钟

ReactNative 启动应用(2)

ReactNative 启动应用 简述 本节我们来看一下ReactNative在Android上启动Activity的流程&#xff0c;ReactNative在Android上也是一个Apk&#xff0c;它的实现全部都在应用层&#xff0c;所以它肯定也是符合我们Android应用的启动流程的&#xff0c;UI页面的载体也是一个Acti…