Kar*_*lik 0 python google-app-engine webapp2
我在GAE上有一个应用程序,用于检查管理员是否在调用任何网页之前登录.我已经尝试了各种方法来管理登录过程.
Q1 - 我在第二个例子中的装饰师做错了什么?
Q2 - 人们通常也会对帖子功能进行检查吗?
之前我在每个get函数中使用了if语句.问题是我会在每个函数中反复重复这个if语句.
class IncomePage(webapp2.RequestHandler):
def get(self):
if users.is_current_user_admin():
self.response.write('My Webpage')
else:
self.response.write('Please Login')
Run Code Online (Sandbox Code Playgroud)
然后我试着让装饰师为我做这件事.它没有用,所以我做错了什么.
def check(func):
if users.is_current_user_admin():
return func
else:
response.write('Please Login') ### Doesn't work
class IncomePage(webapp2.RequestHandler):
@check
def get(self):
self.response.write('My Webpage')
Run Code Online (Sandbox Code Playgroud)
那不是装饰者.装饰器需要返回一个代替实际函数调用的包装函数,它是需要进行测试然后调用原始函数的包装器.
def check(func):
def wrapper(*args, **kwargs):
if users.is_current_user_admin():
return func(*args, **kwargs)
else:
response.write('Please Login')
return wrapper
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
228 次 |
| 最近记录: |