Flask - 函数映射正在覆盖现有的端点函数

时间:2013-11-13 20:52:37

标签: python facebook flask

我正在努力让烧瓶框架与Facebook合作。我正在使用flask_canvas这样做。我在文档中找到了flask_canvas的示例(在这里找到:http://flask-canvas.readthedocs.org/en/latest/)但是我一直收到以下错误:

AssertionError: View function mapping is overwriting an existing endpoint function: inner

如果我注释掉方法user(),它将会运行,但是当该方法未被注释掉时,我会收到上述错误。

知道如何制作它,这样我可以同时使用canvas()user()方法而不会引发AssertionError吗?

import flask_canvas
from flask import Flask, session, redirect
app = Flask(__name__)
flask_canvas.install(app)

HOST = 'localhost'
PORT = 8000

@app.route('/')
def hello_world():
    return 'Hello World!'

# route your canvas-specific page
@app.canvas_route('/app/', methods=['GET','POST'])
def canvas():
    return 'hello, world'

 #route page requiring user data
@app.canvas_route('/user/', methods=['GET','POST'])
def user(canvas_user):
    return canvas_user.request('/me')

if __name__ == '__main__':
    app.run(host = HOST, port = PORT, debug = True)

2 个答案:

答案 0 :(得分:10)

我有一个类似的问题,使用没有@wraps的装饰器重命名正在装饰的功能。有关详细信息,请参阅此http://flask.pocoo.org/docs/patterns/viewdecorators/

答案 1 :(得分:1)

我遇到了这个问题,我认为您的应用中可能有两个或更多内部功能。

@app.route('/show1',methods=['GET','POST'])
def show():
    return redirect(url)
@app.route('/show2',methods=['GET','POST'])
def show():
    return redirect(url)

这会告诉你一个错误: AssertionError:视图函数映射正在覆盖现有的端点函数:show