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_sellerlogin_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

+0

是否安全是这种保护页面的方法? – AutoSoft

+1

如果没有看到'g.user'的实际代码,很难讨论安全问题。 –

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