人工智慧—網站資訊的登入與操作(不規劃在同一個.py中,不利於欣賞)
阿新 • • 發佈:2018-12-10
logining.py
from flask import Flask from flask import render_template from flask import request#互動模組 from flask import redirect from flask import Markup from flask import session #template_folder="temp"設定模板資料夾路徑 app=Flask(__name__)#typtFlask app.secret_key="DD" STUDENT_DICT = { 1: {'NAME': 'Old', 'AGE': 38, 'GENDER': '中'}, 2: {'NAME': 'Boy', 'AGE': 73, 'GENDER': '男'}, 3: {'NAME': 'EDU', 'AGE': 84, 'GENDER': '女'}, } @app.route("/hello")//在另一個模板檔案下的模板html def hello(): return render_template("hello.html") @app.before_request def before_login():#每次請求都在請求生效之前,進行本函式的執行(驗證) 可以針對多種條件進行驗證,驗證是順序符合函式書寫順序if request.path=="/log": return None #不符合條件或是符合,進行不同處理與專項 if session.get("user"): return None return redirect("/log") @app.route("/log",methods=["GET","POST"]) def login(): if request.method=="POST": if request.form["user"]=="wlx" and request.form.get("pwd")=="wlx": session["user"]=request.form["user"] return redirect("/stu_info") else: return render_template("logining.html",msg="使用者名稱或密碼錯入,請重新輸入") return render_template("logining.html") #是不是一開始就否定執行到了這,才出現了登入表單,才有了 @app.route("/stu_info") def stu_info(): if session.get("user"): return render_template("show1.html",stu_info=STUDENT_DICT) return redirect("/login")
@app.route("/add",methods=["GET","POST"]) def add(): if request.method=="POST": if session.get("user"): uid=int(request.form["ID"]) uname=request.form["uname"] age=request.form["age"] gender=request.form["gender"] STUDENT_DICT[uid]={ "NAME":uname, "AGE":age, "GENDER":gender } return redirect("/stu_info") return redirect("/login") return render_template("xin.html") @app.route("/edit/<int:nid>",methods=["GET","POST"]) def edit(nid): stu=STUDENT_DICT[nid] if request.method=="POST": if session.get("user"): uid=nid uname=request.form["uname"] age=request.form["age"] gender=request.form["gender"] STUDENT_DICT[uid]={ "NAME":uname, "AGE": age, "GENDER":gender } return redirect("/stu_info") return redirect("/login") return render_template("edit.html",stu=stu,stu_id=nid) @app.route("/delete/<int:nid>") def delete(nid): if session.get("user"): STUDENT_DICT.pop(nid) return redirect("/stu_info") return redirect("/login") app.run("0.0.0.0",8081,debug=True)