13

我正在尝试让烧瓶框架与 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)
4

2 回答 2

16

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

于 2014-02-03T05:39:00.207 回答
11

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

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

这会告诉你一个错误: AssertionError: View function mapping is overwriting an existing endpoint function: show

于 2015-09-22T07:52:16.783 回答