首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的示例中,装饰器要求在flask-principal中不能正常工作

在我的示例中,装饰器要求在flask-principal中不能正常工作
EN

Stack Overflow用户
提问于 2013-06-12 15:21:38
回答 1查看 853关注 0票数 0

我对flask-principal中的装饰器要求(http_exception=401)有问题。我正在尝试访问需要登录的网站,但我可以访问那里。你知道为什么吗?我的代码如下:

infrastructure.py

代码语言:javascript
运行
复制
app = Flask(__name__)
db = SQLAlchemy(app)
principals = Principal(app)
principals._init_app(app)

# User Information providers
@identity_loaded.connect_via(app)
def on_identity_loaded(sender, identity):
    g.user = User.query.from_identity(identity)
# Permission
admin = Permission(RoleNeed('admin'))
member_perm = Permission(RoleNeed('member'))

User = get_user_class(db.Model)

视图/login.py

代码语言:javascript
运行
复制
# -*- coding: utf-8 -*-
from flask import Flask, request, session, g, redirect, url_for, \
     abort, render_template, flash, current_app
from flask.ext.principal import identity_changed, Identity
from hlidejkatastr.infrastructure import app, User

@app.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        email = request.form['email']
        user = User.query.filter(User.email==email).first()
        if user is not None:
            if user.password == request.form['password']:
                identity_changed.send(current_app._get_current_object(),   identity=Identity(user.id))
                return redirect(url_for('profil'))
            else:
                return render_template('login.html')
        else:
            return render_template('login.html')
    return render_template('login.html')

views/profil.py

代码语言:javascript
运行
复制
@member_perm.require(http_exception=401)
@app.route('/profil/', methods=['GET', 'POST'])
def profil():
    # code ...

谢谢你的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-13 22:56:58

@member_perm装饰器应该位于@app.route装饰器的下面/内部:

所以试试吧:

代码语言:javascript
运行
复制
@app.route('/profil/', methods=['GET', 'POST'])
@member_perm.require(http_exception=401)
def profil():
    # code ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17059803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档