flask第一个应用

文章目录


安装

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():
        # 设置session
        session['name'] = 'admin'
        redis_client.set('name', 'admin')
        # 获取session
        return 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 app

class 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处理中大型项目

相关推荐
2601_9659584622 分钟前
口腔黏膜脱皮超2周未愈建议及时就医
人工智能·python
笃行3501 小时前
向量数据库单独建一套,这笔账划不划算
后端
微小冷1 小时前
在不同空间中展示数据(欧式、球面、庞加莱圆盘)
python·双曲空间·微分几何·geomstats·庞加莱圆盘·球面
weixin_431600442 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
讲温控就好了2 小时前
从医疗影像到能源存储——芯片冷却温控技术的跨行业赋能
人工智能·python·能源
Rain的Java大神之路2 小时前
短信接口被狂刷怎么处理
java·运维·后端·web安全·面试·架构·xss
DeepVisionary2 小时前
从 Qwen3.8-27B 把原生多模态、原生 FP8、桌面级 Agent 三件事一次集齐,看开源大模型的“工业化拐点“
python·自动化
Lost of 程序猿3 小时前
AOP 实战:面向切面编程从理论到落地
后端·asp.net·aop·面向切片变成
固定资产管理系统软件3 小时前
商务局RFID固定资产管理系统的应用价值与落地要点解析
大数据·python
Lost of 程序猿4 小时前
ASP.NET Core 认证授权实战:从 JWT 到 Policy,设计一套企业级 RBAC 权限系统
后端·asp.net