python flask保护用户页面
问题描述:
我想保护python-flask上的页面,只能进入此页面的用户有限。python flask保护用户页面
我写这样的代码:
def im_seller():
if not g.user.seller_fee_paid:
return redirect(url_for('account.seller_fee'))
return
@account.route('/account/seller/products.html')
@login_required
@im_seller
def seller_products():
不工作的脚本,给这个错误:
TypeError: im_seller() takes no arguments (1 given)
在那里我错了?谢谢大家。
答
装饰需要的功能和需要回功能:
from functools import wraps
def require_seller(f):
@wraps(f)
def require_seller_wrapper(*args, **kwargs):
if not g.user.seller_fee_paid:
return redirect(url_for('account.seller_fee'))
return f(*args, **kwargs)
return require_seller_wrapper
你也想扭转require_seller
和login_required
顺序,这样就可以确保g.user
设置:
@account.route('/account/seller/products.html')
@require_seller
@login_required
def seller_products():
return "All the seller's products"
有关所有细节,请参阅this answer about decorators。
答
from functools import wraps
def require_seller(f):
@wraps(f)
def require_seller_wrapper(*args, **kwargs):
if not g.user.seller_fee_paid:
return redirect(url_for('account.seller_fee'))
return f(*args, **kwargs)
return require_seller_wrapper
你应该使用Python装饰器。 Link
是否安全是这种保护页面的方法? – AutoSoft
如果没有看到'g.user'的实际代码,很难讨论安全问题。 –