Flask 写个查询数据demo
时间: 2025-01-06 12:42:43 浏览: 8
### 使用 Flask 编写查询数据的 Demo 示例
为了展示如何使用 Flask 构建一个可以查询数据库并返回结果的应用程序,下面提供了一个完整的例子。此应用程序允许用户输入查询条件并通过 SQL 查询获取相应的记录。
#### 创建 Flask 应用结构
首先安装必要的库:
```bash
pip install flask sqlalchemy pymysql
```
接着设置项目文件夹和基本配置,在应用根目录下创建 `app.py` 文件来初始化 Flask 和 SQLAlchemy 连接 MySQL 数据库[^1]。
#### 定义模型类
假设有一个名为 `users` 的表存储着用户的姓名、年龄等信息,则可以在 Python 脚本中定义对应的 ORM 类型如下所示:
```python
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
age = db.Column(db.Integer)
def __repr__(self):
return f'<User {self.name}>'
```
这段代码描述了与数据库中的 users 表相对应的数据模型,并指定了各字段及其属性[^2]。
#### 设置路由和视图逻辑
接下来就是实现具体的业务流程——接收前端传来的参数作为过滤依据执行 SELECT 语句检索满足条件的结果集;最后再把它们转换成 JSON 字符串响应给客户端显示出来。
```python
import json
from flask import Flask, request, jsonify
app = Flask(__name__)
# 配置SQLAlchemy连接MySQL数据库
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:@localhost/test"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
@app.route("/query", methods=["GET"])
def query_data():
try:
keyword = request.args.get('keyword') # 获取URL参数
if not keyword:
raise ValueError("Keyword cannot be empty")
results = []
with app.app_context():
users = User.query.filter(User.name.like(f'%{keyword}%')).all()
for user in users:
result_dict = {
'id': user.id,
'name': user.name,
'age': user.age
}
results.append(result_dict)
response = {'status': True, 'data': results}
status_code = 200
except Exception as e:
response = {"status": False, "message": str(e)}
status_code = 400
finally:
return jsonify(response), status_code
if __name__ == '__main__':
app.run(debug=True)
```
上述脚本实现了 `/query` API 接口的功能,它会根据 URL 参数中的关键词去匹配名字中含有该字符串的所有用户条目并将这些对象序列化为字典列表形式发送回去[^3]。
阅读全文