Я искал и читал много похожих сообщений, но моя проблема имеет другое поведение, чем все, что я нашел.
У меня есть очень простое приложение для фляги (ниже). Все, что он делает, это наличие страницы test.html с 2 кнопками для обратного вызова в python def.
- Test1 button has hard-coded form action="/test".
- Works
- Test2 button has form action="{{ url_for('test') }}"
- Fails with: > POST /%7B%7B%20url_for('test')%20%7D%7D HTTP/1.1" 405 -
- Метод не разрешен
В чем может быть проблема? Являются ли escape-символы проблемой? Если да, то как их предотвратить?
test.py
#!/usr/bin/env python3
from flask import Flask, request, send_file
app = Flask(__name__, static_url_path='', static_folder='')
@app.route('/')
def FooTest():
return app.send_static_file('test.html')
@app.route("/test", methods=["GET","POST"])
def test():
print("Got Callback:")
return "Click"
if __name__ == '__main__':
app.run(debug=True)
test.html
<!DOCTYPE html>
<html>
<form method="post" action="/test">
<button type="submit"> Test1</button/>
</form>
<form method="post" action="{{ url_for('test') }}">
<button type="submit"> Test2</button/>
</form>
</html>