当前位置:首页>python>python基于框架flask实现完整接口flask入门

python基于框架flask实现完整接口flask入门

  • 2026-09-02 15:54:52
python基于框架flask实现完整接口flask入门

python基于框架flask实现完整接口

flask入门

https://flask.palletsprojects.com/zh-cn/stable/quickstart/

涉及概念

__init__.py

部分
归属
__init__.py
 文件的含义和作用
Python 语言默认
在 __init__.py 中导入子模块并定义为列表
Python 常规代码写法
使用 blueprints = [...] 然后在 create_app 中循环注册
Flask 应用层的使用方式(利用了 Python 的列表和循环)

所以,__init__.py 的这种用途是纯 Python 的,Flask 只是“消费”了你通过 Python 机制准备好的蓝图列表

blueprint

Blueprint 就是把一组相关的路由(接口)打包成一个“模块”,然后挂到 Flask 应用上

为什么使用blueprint

  • 不分模块

    所有接口都写在 app.py 里,文件会变得又长又乱

  • 用 Blueprint

    每个功能(比如 user、auth、blog)各自一个文件,然后在主程序里注册一下就行

三步拆解blueprint构建

  • 定义一个蓝图(比如 user.py)

    from flask import Blueprint

    bp = Blueprint('user', __name__, url_prefix='/api/user')

    @bp.route('/profile')
    defprofile():
    return {"name": "Alice"}
  • 在主程序里注册它(比如 app/__init__.py)

    from flask import Flask
    from .api import user  # 导入上面那个文件

    defcreate_app():
      app = Flask(__name__)
      app.register_blueprint(user.bp)  # 注册
    return app
  • 启动后访问:/api/user/profile 就能拿到数据

项目demo

https://gitee.com/kcnf-python/python-flask

部分代码说明

统一入口:创建应用并启动服务器

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
统一入口:创建应用并启动服务器
"""

from app import create_app

# 创建 Flask 应用实例(声明式注册所有蓝图)
app = create_app()

if __name__ == '__main__':
# 获取主机和端口(可从环境变量读取,默认 0.0.0.0:5000)
    host = '0.0.0.0'
    port = 5000
    debug = app.config.get('DEBUG', False)
    app.run(host=host, port=port, debug=debug)

注册相关路径

from flask import Flask
from app.config import get_config
from app.api import blueprints  # 导入显式声明的蓝图列表

defcreate_app():
    app = Flask(__name__)
    config_obj = get_config()
    app.config.from_object(config_obj)

# 声明式注册:循环注册 blueprints 列表中的每个蓝图
for bp in blueprints:
        app.register_blueprint(bp)
print(f"✓ Registered blueprint: {bp.name}")

    @app.route('/')
defindex():
return {"message": f"Welcome to {app.config['API_TITLE']}"}

return app

实现相关接口定义

from flask import Blueprint, jsonify, request

bp = Blueprint('user', __name__, url_prefix='/api/user')

# 模拟用户数据
users_db = {
1: {"id": 1, "name": "Alice", "email": "alice@example.com"},
2: {"id": 2, "name": "Bob", "email": "bob@example.com"},
}

@bp.route('', methods=['GET'])
deflist_users():
"""获取所有用户"""
return jsonify(list(users_db.values()))

@bp.route('/<int:user_id>', methods=['GET'])
defget_user(user_id):
"""获取单个用户"""
    user = users_db.get(user_id)
ifnot user:
return jsonify({"error": "User not found"}), 404
return jsonify(user)

@bp.route('', methods=['POST'])
defcreate_user():
"""创建用户"""
    data = request.get_json()
    new_id = max(users_db.keys()) + 1if users_db else1
    user = {"id": new_id, "name": data.get("name"), "email": data.get("email")}
    users_db[new_id] = user
return jsonify(user), 201

项目结构

验证结果

点下方的“❤”支持下,非常感谢!

●python本地环境搭建,pip管理

●python venv 虚拟环境的创建

●python window下面uv安装和使用

●python 如何一次性安装项目所有依赖包(pip和uv)

●python环境|pip|uv|venv|Conda区别

●python环境|pip安装|pip镜像使用

●python环境|conda安装和使用(1)

●python环境|conda安装和使用(2)

python环境|conda项目实战中使用

python基于框架flask搭建demo

最新文章

随机文章