在使用Flask和Flask_SQLAlchemy之前,我们需要先安装这两个包。可以通过以下命令进行安装:
pip install Flask Flask_SQLAlchemy
bash
- 创建Flask应用与数据库模型
首先,我们需要先创建一个Flask应用,然后使用SQLAlchemy构建数据库模型。在这里,以一个简单的学生信息管理系统为例,创建一个学生类作为数据库模型。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(name)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50), nullable=False)
age = db.Column(db.Integer, nullable=False)
gender = db.Column(db.String(10), nullable=False)
python
上述代码创建了一个Flask应用,并且设置了SQLite数据库路径。然后定义了一个学生类,包括学生的编号、姓名、年龄和性别等属性。
- 创建接口实现CRUD
在使用Flask实现CRUD操作时,需要定义相应的API接口,包括创建、读取、更新和删除方法。
@app.route('/students', methods=['GET'])
def get_students():
students = Student.query.all()
result = {
'students': []
}
for student in students:
result['students'].append({
'id': student.id,
'name': student.name,
'age': student.age,
'gender': student.gender
})
return result
@app.route('/students/', methods=['GET'])
def get_student(id):
student = Student.query.get(id)
if student is None:
return {'message': 'Student not found'}
else:
return {
'id': student.id,
'name': student.name,
'age': student.age,
'gender': student.gender
}
@app.route('/students', methods=['POST'])
def create_student():
data = request.json
student = Student(name=data['name'], age=data['age'], gender=data['gender'])
db.session.add(student)
db.session.commit()
return {'message': 'Student created', 'id': student.id}
@app.route('/students/', methods=['PUT'])
def update_student(id):
data = request.json
student = Student.query.get(id)
if student is None:
return {'message': 'Student not found'}
else:
if 'name' in data:
student.name = data['name']
if 'age' in data:
student.age = data['age']
if 'gender' in data:
student.gender = data['gender']
db.session.commit()
return {'message': 'Student updated'}
@app.route('/students/', methods=['DELETE'])
def delete_student(id):
student = Student.query.get(id)
if student is None:
return {'message': 'Student not found'}
else:
db.session.delete(student)
db.session.commit()
return {'message': 'Student deleted'}
python
上述代码实现了读取所有学生、读取单个学生、创建学生、更新学生和删除学生等功能。其中,需要注意的是,读取单个学生、删除学生和更新学生的路由需要包含学生的id作为参数。
- 运行应用程序
最后,我们需要使用以下代码运行Flask应用程序:
if name == 'main':
db.create_all()
app.run(debug=True)
python
其中,db.create_all()代码用于创建数据库表。debug=True可以在开发阶段启用调试模式,方便调试。
至此,我们就通过Flask和Flask_SQLAlchemy实现了一个简单的学生信息管理系统,包括增删改查等基本操作。