You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python构建API实现MySQL数据库查询?

搭建Python查询数据库API的实用指南

嘿,你已经搞定了数据库连接和数据提取这最关键的一步,接下来搭API其实没那么复杂!我自己平时做项目常用两个工具,上手快、生态成熟,给你详细讲讲:

推荐工具1:FastAPI(首推,现代、高效)

FastAPI是目前Python生态里最火的API框架之一,自带自动生成的交互文档,性能接近Node.js和Go,对新手友好度拉满。

步骤1:安装依赖

打开终端跑这行命令:

pip install fastapi uvicorn
  • fastapi是核心框架,uvicorn是用来运行API的ASGI服务器。

步骤2:写基础API代码

把你已有的数据库查询逻辑整合进去就行,举个简单例子:

from fastapi import FastAPI
import 你的数据库连接模块  # 比如你自己写的db_connect.py

app = FastAPI(title="数据库查询API")

# 示例:根据用户ID查询数据
@app.get("/query/user/{user_id}")
def get_user_data(user_id: int):
    # 这里调用你已经写好的数据库查询函数
    query_result = 你的数据库查询函数(user_id)
    if query_result:
        return {"status": "success", "data": query_result}
    else:
        return {"status": "error", "message": "未找到对应数据"}

# 示例:带参数的模糊查询(比如按用户名)
@app.get("/query/user/search")
def search_user(username: str):
    query_result = 你的模糊查询函数(username)
    return {"status": "success", "data": query_result}

步骤3:运行API

终端跑:

uvicorn main:app --reload

main是你的文件名(比如main.py),--reload是开发模式下自动重载代码。

额外福利

启动后访问 http://127.0.0.1:8000/docs,就能看到自动生成的交互文档,直接在网页上测试API,不用写额外的测试代码!

推荐工具2:Flask(轻量、灵活)

如果你喜欢更轻量的框架,Flask是经典选择,生态非常完善,适合快速原型开发。

步骤1:安装依赖

pip install flask

步骤2:写基础API代码

同样整合你的数据库逻辑:

from flask import Flask, jsonify, request
import 你的数据库连接模块

app = Flask(__name__)

@app.route("/query/user/<int:user_id>", methods=["GET"])
def get_user_data(user_id):
    query_result = 你的数据库查询函数(user_id)
    if query_result:
        return jsonify({"status": "success", "data": query_result})
    else:
        return jsonify({"status": "error", "message": "未找到对应数据"}), 404

@app.route("/query/user/search", methods=["GET"])
def search_user():
    username = request.args.get("username")
    if not username:
        return jsonify({"status": "error", "message": "请提供username参数"}), 400
    query_result = 你的模糊查询函数(username)
    return jsonify({"status": "success", "data": query_result})

if __name__ == "__main__":
    app.run(debug=True)

步骤3:运行API

直接运行你的脚本,比如python main.py,访问http://127.0.0.1:5000就能测试。

关键注意事项

  • 防止SQL注入:绝对不要用字符串拼接SQL语句!一定要用数据库驱动的参数化查询(比如cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))这种格式),你的数据库连接代码里应该已经处理了,但务必再检查一遍。
  • 错误处理:可以加更多异常捕获,比如数据库连接失败、参数格式错误等,返回清晰的错误信息和HTTP状态码(比如400参数错误、500服务器错误)。
  • 权限控制:如果API需要限制访问,可以加API Key验证或者OAuth2,FastAPI和Flask都有对应的扩展(比如FastAPI的OAuth2PasswordBearer,Flask的Flask-HTTPAuth)。
  • 部署上线:开发模式跑起来后,生产环境建议用更稳定的服务器,比如FastAPI用gunicorn+uvicorn,Flask用gunicorn+flask,再配合Nginx做反向代理,或者直接部署到云平台。

内容的提问来源于stack exchange,提问作者user9764822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:46:32