06- flask装饰器和类视图
import functools from flask import Flask,views app = Flask(__name__) def wrapper(func): @functools.wraps(func) def inner(*args,**kwargs): return func(*args,**kwargs) return inner class UserView(views.MethodView): methods = ['GET'] decorators = [wrapper,] def get(self,*args,**kwargs): return 'GET' def post(self,*args,**kwargs): return 'POST' app.add_url_rule('/user',None,UserView.as_view('uuuu')) if __name__ == '__main__': app.run()
权限认证
import functools
from flask import Flask, views, g, redirect, request
app = Flask(__name__)
@app.before_request
def before_request():
print("对用户的身份进行校验")
print(request.headers.get("api-Key", ""))
# 如果直接在这个函数里面返回数据的话,那么真实的视图函数就不会被执行了
# 可以在此函数中做一些请求的判断
g.name = 'test1'
return None
def Svip(func):
@functools.wraps(func)
def inner(*args, **kwargs):
print("Svip 用户权限认证")
print(g.name)
return func(*args, **kwargs)
return inner
def VIP(func):
@functools.wraps(func)
def inner(*args, **kwargs):
print("vip 用户才可以登录")
print(g.name)
return func(*args, **kwargs)
return inner
class UserView(views.MethodView):
# methods = ['GET']
decorators = (VIP,)
def get(self, user_id, *args, **kwargs):
print("UserView")
print(user_id)
print(g.name)
return 'GET'
def post(self, user_id, *args, **kwargs):
print(user_id)
return 'POST'
app.add_url_rule('/user/<int:user_id>', None, UserView.as_view('user info'))
if __name__ == '__main__':
app.run()

浙公网安备 33010602011771号