1.创建一个Flask应用,定义一个名为Item的模型,包含id(主键)、name(字符串)和age(整数)字段。实现一个路由/items,该路由返回所有Item对象的列表。 2.扩展上一个Flask应用,实现一个路由/items/<int:item_id
时间: 2024-12-13 18:20:56 浏览: 4
首先,我们要创建一个简单的 Flask 应用,并定义一个名为 Item 的 SQLAlchemy 模型。确保已安装 Flask 和 Flask-SQLAlchemy。以下是一个基本的步骤:
```python
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///items.db' # 使用本地SQLite数据库
db = SQLAlchemy(app)
class Item(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
age = db.Column(db.Integer)
def to_dict(self):
return {'id': self.id, 'name': self.name, 'age': self.age}
@app.route('/items', methods=['GET'])
def get_items():
items = Item.query.all() # 查询所有Item对象
return jsonify([item.to_dict() for item in items]) # 将查询结果转换为JSON并返回
# 对于动态ID的路由
@app.route('/items/<int:item_id>', methods=['GET'])
def get_item(item_id):
item = Item.query.get_or_404(item_id) # 获取指定ID的Item对象,如果没有则返回404错误
return jsonify(item.to_dict())
if __name__ == '__main__':
db.create_all() # 创建表
app.run(debug=True) # 开启调试模式运行服务器
```
在这个例子中,我们首先设置了 Flask 应用的基本配置,然后定义了一个 `Item` 类,包含 id、name 和 age 字段。`to_dict` 方法用于将数据库对象转化为字典便于序列化。我们分别实现了两个路由:一个是 `/items` 返回所有的 Item,另一个是 `/items/<int:item_id>` 根据传入的 ID 返回单个 Item。
阅读全文