- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我有一个这样设置的 View :
class toi(FlaskView):
def index(self):
...
return render_template('home.html')
@route('/api/')
@route('/api/<int:urlgid>/')
@route('/api/<int:urlgid>/<int:urlper>/')
def APIInstruction(self, urlgid=None, urlper=None):
return render_template('toi-instructions.html')
然后在我的主 app.py 中我有
from views.toi import toi
toi.register(app)
然后在 toi:index 输出的 HTML 中我有
... <a href="{{ url_for('toi:APIInstruction') }}">how to use the API</a> ...
这给了我一个构建错误(没有更多细节),我一直在绞尽脑汁试图弄清楚这一点。如果我删除@routes,错误就会消失。如果我去掉第二个和第三个@routes,它不会给我一个构建错误。如果我将 urlgid 和 urlper 放入 url_for() 函数中,它不会改变任何内容。我尝试更改端点,尝试将 url_for 更改为 toi:api。
我不确定导致此 BuildError 的错误是什么。
最佳答案
当您对单个 View 使用多个路由时,会创建多个端点(每个路由一个端点)。为了帮助您区分每个端点,Flask-Classy 会在预期路由名称的末尾附加一个索引。从最后定义的路由开始,顺序为 0 到 n。所以给出你的例子:
@route('/api/') # use: "toi:APIInstruction_2"
@route('/api/<int:urlgid>/') # use: "toi:APIInstruction_1"
@route('/api/<int:urlgid>/<int:urlper>/') # use: "toi:APIInstruction_0"
def APIInstruction(self, urlgid=None, urlper=None):
return render_template('toi-instructions.html')
您可以在此处阅读有关此行为的更多信息: http://pythonhosted.org/Flask-Classy/#using-multiple-routes-for-a-single-view
或者(这是我更喜欢的方法),您可以指定要在任何 @route
装饰器中显式使用的端点。例如:
@route('/api/', endpoint='apibase')
可以使用以下方式访问:
url_for('apibase')
关于python - 当使用 url_for 链接到 @route 中带有变量的函数时,Flask-Classy 给出 BuildError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885186/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!