1. 程式人生 > 其它 >Flask框架第七篇.CBV和Flask-session

Flask框架第七篇.CBV和Flask-session

1.CBV

優勢:先天支援 RestAPI

from flask import Flask,views
​
app = Flask(__name__)  # template_folder, static_folder , static_url_path
​
@app.before_request
def is_login():
    return 1
​
@app.after_request
def is_login(res):
    return res
​
class Login(views.MethodView):  #繼承 MethodView,讓我當前的 class 可以成為檢視類
# methods = ["GET","POST"] # decorators = ["is_login"] def get(self,*args,**kwargs): return "get"def post(self,*args,**kwargs): pass# def primrose(self,*args,**kwargs): # pass ​ app.add_url_rule("/login", endpoint="my_login
", view_func=Login.as_view(name="loginlogin") # view_func.__name__ = "loginlogin" ) ​ if __name__ == '__main__': app.run()
View Code
# 總結 CBV - RestAPI
from flask import views 
​
class Login(views.MethodView):
    def get(*args,**kwargs):
        pass
    
app.add_url_rule(
"url", endpoint=None, view_func=Login.as_view(name="當前檢視函式名,必須唯一,因為他是endpoint"))

2. Flask-session

from flask import Flask,redirect,session
from flask_session import Session
from redis import Redis
​
app = Flask(__name__)
app.secret_key = "%$#*HGTKHGRRLKJ"# app.session_interface  # Flask利用session_interface選擇Session存放機制和存放位置
# 連線redis配置
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = Redis(host="127.0.0.1",port=6379,db=10)
​
Session(app)
​
@app.route("/sets")
def sets():
    session['key'] = "張三"
    return "set ok"
​
@app.route("/gets")
def gets():
    return session.get("key")
​
​
if __name__ == '__main__':
    app.run("0.0.0.0",9527)
View Code