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

📅 2026/6/25 12:46:17
python基于框架flask实现完整接口
python基于框架flask实现完整接口flask入门涉及概念init.pyblueprint为什么使用blueprint三步拆解blueprint构建项目demo部分代码说明统一入口创建应用并启动服务器注册相关路径实现相关接口定义项目结构验证结果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 机制准备好的蓝图列表blueprintBlueprint 就是把一组相关的路由接口打包成一个“模块”然后挂到 Flask 应用上为什么使用blueprint不分模块所有接口都写在 app.py 里文件会变得又长又乱用 Blueprint每个功能比如 user、auth、blog各自一个文件然后在主程序里注册一下就行三步拆解blueprint构建定义一个蓝图比如 user.pyfrom flask import Blueprint bp Blueprint(user, __name__, url_prefix/api/user) bp.route(/profile) def profile(): return {name: Alice}在主程序里注册它比如 app/init.pyfrom flask import Flask from .api import user # 导入上面那个文件 def create_app(): app Flask(__name__) app.register_blueprint(user.bp) # 注册 return app启动后访问/api/user/profile 就能拿到数据项目demohttps://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(hosthost, portport, debugdebug)注册相关路径from flask import Flask from app.config import get_config from app.api import blueprints # 导入显式声明的蓝图列表 def create_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(/) def index(): return {message: fWelcome 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: aliceexample.com}, 2: {id: 2, name: Bob, email: bobexample.com}, } bp.route(, methods[GET]) def list_users(): 获取所有用户 return jsonify(list(users_db.values())) bp.route(/int:user_id, methods[GET]) def get_user(user_id): 获取单个用户 user users_db.get(user_id) if not user: return jsonify({error: User not found}), 404 return jsonify(user) bp.route(, methods[POST]) def create_user(): 创建用户 data request.get_json() new_id max(users_db.keys()) 1 if users_db else 1 user {id: new_id, name: data.get(name), email: data.get(email)} users_db[new_id] user return jsonify(user), 201项目结构验证结果