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

idu*_*osn 5 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
Run Code Online (Sandbox Code Playgroud)

如果我注释掉该方法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)
Run Code Online (Sandbox Code Playgroud)

小智 11

我有一个类似的问题,使用没有@wraps的装饰器重命名正在装饰的功能.详情请见http://flask.pocoo.org/docs/patterns/viewdecorators/


小智 9

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

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

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