from flask import session,Flask from flask_session import Session #導入 from redis import Redis app=Flask(__name__) #1.session的配置 app.config["SESSION_TYPE"]="redis" app.config["SESSION_REDIS"]=Redis(host="127.0.0.1",port=6379,db=6) Session(app) #2.定義使用該session的app #3.存與取使用 @app.route('/let') def let(): session["user"]="shy" return 'ok' @app.route("/get") def get(): print(session["user"]) return 'okok' app.run('0.0.0.0',5000,debug=True)
flask中的session須要執行session_interface-------open_sessionhtml
注:字典的setfefault方法redis
dict.setdefault(key,default=None) #若是鍵不存在於字典中,將會添加鍵並將值設爲默認值。
from wtforms.fields import simple,core from wtforms import Form from wtforms import validators from flask import Flask,request,render_template app=Flask(__name__) class LoginForm(Form): username = simple.StringField( label="用戶名", # 標籤標記 validators=[validators.DataRequired(message='用戶名不能爲空'),validators.Length(min=3,max=5,message="過長或太短")], # 不能爲空 # descripyion="ffff", # 描述標記 id="user_name", # 標籤id default=None, # widget= #input輸入框,已經被實例化了 render_kw=None, ) # 實例化 password = simple.PasswordField( label="密碼", # 標籤標記 validators=[ validators.DataRequired(message='密碼不能爲空'), validators.Email(message="密碼必須符合郵箱規則"), ], # 不能爲空 # descripyion="", # 描述標記 id="password", # 標籤id # widget= #input輸入框,已經被實例化了 render_kw=None, ) @app.route("/get",methods=['GET','POST']) def index(): print(111111111) if request.method == "GET": print(222) fm = LoginForm() print(33) return render_template("index.html", wtf=fm) else: print(55555) new_fm = LoginForm(request.form) print(new_fm) if new_fm.validate(): return new_fm.data.get("username") else: return render_template("index.html", wtf=new_fm) app.run('0.0.0.0',5000)
from wtforms.fields import simple.core from wtforms import Form from wtforms import validators class LogonForm(Form): username=simple.StringField( label="用戶名",#標籤標記 validators=[validators.Daterequire(message='用戶名不能爲空')],#不能爲空 descripyion="",#描述標記 id="user_name",#標籤id #widget= #input輸入框,已經被實例化了 render_kw=None, )#實例化 password=simple.PasswordField( label="密碼",#標籤標記 validators=[validators.Equalto(fieldname='password',message='密碼兩次輸入不一致')], descripyion="",#描述標記 id="user_name",#標籤id #widget= #input輸入框,已經被實例化了 render_kw=None, ) repassword=simple.PasswordField( label="再次輸入密碼",#標籤標記 validators=[ validators.Daterequire(message='密碼不能爲空'), validators.Email(message="密碼必須符合郵箱規則"), ],#不能爲空 descripyion="",#描述標記 id="user_name",#標籤id #widget= #input輸入框,已經被實例化了 render_kw=None, ) gender=core.RadioField( label='性別', coerce=int, choices=( (1,'女'), (2,'男') ), defaule=1, ) hobby=core.SelectMultipleField( label='愛好', coerce=int,#獲取到的數據類型,若是改爲str,choice和defaule也要改 choices=( (1,'抽菸'), (2,'喝酒'), (3,'燙頭'), (4,'擼串'), ), defaule=(1,2,3), validators=[validators.Length(min=2,max=4,message='愛好不能太多太少')] ), @app.route("/reg",method) def reg(): if request.method=="GET": rf=LoginForm() return render_template("index.html",wtf=rf) else: rf=LoginForm(request.path) if rf.validate(): return rf.data.get("username") else: return render_template("index.html",wtf=rf)