目录
导入相应包
创建接口
基于上述db对象创建一个Student
添加信息
显示学生信息
修改与删除信息
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/studentinfo?charset=utf8'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True # 这一行如果不添加,程序会报警告。
db= SQLAlchemy(app)
class Student(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(100))
sex = db.Column(db.String(100))
studentId = db.Column(db.String(100))
chinese = db.Column(db.String(200))
math = db.Column(db.String(100))
english = db.Column(db.String(100))
def __init__(self, name, sex, studentId, chinese, math, english): # __init__方法负责对象的初始化
self.name = name
self.sex = sex
self.studentId = studentId
self.chinese = chinese
self.math = math
self.english = english
db.create_all() # 将上述类映射到数据库中:
html页面
学生信息
学生信息添加界面
将表单的action
直接指向当前路径,这就要求在当前路径所对应的函数中,对POST
数据进行处理:
@app.route('/newstudent/', methods = ['GET', 'POST'])
def newstudent():
if request.method == 'POST':
if request.form['name'] and request.form['studentId'] and request.form['sex'] and request.form['chinese'] and request.form['math'] and request.form['english']:
curuser = Student(request.form['name'], request.form['studentId'], request.form['sex'], request.form['chinese'], request.form['math'], request.form['english'])
db.session.add(curuser)
db.session.commit()
return redirect(url_for('AllStudent'))
return render_template('info.html')
html页面
学生信息列表
学生信息列表
新建 (增加学生)
姓名
学号
性别
语文
数学
英语
{% for student in students %}
{{ student.name }}
{{ student.studentId }}
{{ student.sex }}
{{ student.chinese }}
{{ student.math }}
{{ student.english }}
{% endfor %}
添加路由
@app.route('/allstudent/')
def AllStudent():
return render_template('allinfo.html', students = Student.query.all() )
html页面如下
学生信息列表
学生信息列表
新建 (增加学生)
姓名
学号
性别
语文
数学
英语
操作
{% for student in students %}
{{ student.name }}
{{ student.studentId }}
{{ student.sex }}
{{ student.chinese }}
{{ student.math }}
{{ student.english }}
修改 删除
{% endfor %}
修改代码如下
@app.route('/modifystudent//', methods = ['GET', 'POST'])
def modifystudent(studentid):
curuser = db.session.query(Student).filter_by(id=studentid).one()
if request.method == 'POST':
if request.form['studentId'] and request.form['sex'] and request.form['chinese'] and request.form['math'] and request.form['english']:
curuser.studentId = request.form['studentId']
curuser.sex = request.form['sex']
curuser.chinese = request.form['chinese']
curuser.math = request.form['math']
curuser.english = request.form['english']
db.session.commit()
return redirect(url_for('AllStudent'))
return render_template('modifyinfo.html', curuser=curuser)
删除代码如下
@app.route('/deleteuser//')
def deletestudent(studentid):
db.session.query(Student).filter_by(id=studentid).delete()
db.session.commit()
return redirect(url_for('AllStudent'))