需求:
1. 用户名: oldboy 密码: oldboy123
2. 用户登录成功之后跳转到列表页面
3. 失败有消息提示,重新登录
4.点击学生名称之后,可以看到学生的详细信息
后端:
1 from flask import Flask 2 from flask import request 3 from flask import render_template 4 from flask import redirect 5 6 USER = { 'username': 'oldboy', 'password': "oldboy123"} 7 8 STUDENT_DICT = { 9 1: { 'name': 'Old', 'age': 38, 'gender': '中'},10 2: { 'name': 'Boy', 'age': 73, 'gender': '男'},11 3: { 'name': 'EDU', 'age': 84, 'gender': '女'},12 }13 14 app = Flask(__name__)15 16 17 @app.route("/login", methods=["GET", "POST"])18 def login():19 if request.method == "POST":20 if request.form["username"] == USER["username"] and request.form["password"] == USER["password"]:21 return redirect("/student_list")22 return render_template("login.html", msg="用户名密码错误")23 24 return render_template("login.html", msg=None) # 如果前端Jinja2模板中使用了msg,这里就算是传递None也要出现msg25 26 27 @app.route("/student_list")28 def student():29 return render_template("student_list.html", student=STUDENT_DICT)30 31 32 @app.route("/info")33 def student_info():34 stu_id = int(request.args["id"])35 stu_info = STUDENT_DICT[stu_id]36 return render_template("student.html", student=stu_info, stu_id=stu_id)37 38 39 app.run("0.0.0.0", 5000, debug=True)
前端:
login.html:
1 2 3 4 514 15Welcome to Old Boy EDU 6 7 8
student_list.html:
1 2 3 4 5Old Boy EDU 6 7 8 Welcome to Old Boy EDU 9
id | 13name | 14option | 15
{ { foo }} | 21{ { student[foo].name }} | 22详细 | 23
student.html
1 2 3 4 5Old Boy EDU 6 7 8 Welcome to Old Boy EDU 9
id | 13name | 14age | 15gender | 16
{ { stu_id }} | 21{ { student.name }} | 22{ { student["age"] }} | 23{ { student.get("gender") }} | 24
思考题:
1.如果我直接访问 /student_list 和 /student 是不是也可以?
2.怎么才能在所有的url地址中校验是否登录?
第五篇,完结