不允许烧瓶法

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (3)

我正在研究一个烧瓶项目并找到一个找不到方法的错误。我只是试着通过按下提交按钮从我的主页转到我的游戏页面。我无法弄清楚我哪里出错了。

我知道已经多次询问过这个问题,但我已经尝试过这些问题中的所有内容,但仍然出现错误。

这是我的路线文件:

from flask import render_template
from app import app
from app.forms import LoginForm

@app.route('/')
@app.route('/homepage', methods=['GET', 'POST'])
def homepage():
    form = LoginForm()
    if form.validate_on_submit():
        return redirect(url_for('index'))
    return render_template('homepage.html', title='Welcome', form=form)

@app.route('/index')
def index():

    return render_template('index.html')

这是我在主页上包含按钮的html代码:

<html>
    <head>
        {% if title %}
            <title>{{ title }} - CatanAI</title>
        {% else %}
            <title>CatanAI</title>
        {% endif %}
    </head>
        <h1>Welcome to Settlers of Catan AI</h1>
    <body>

        <form method="post" action='{{url_for('index')}}'>

        <p>{{ form.submit() }}</p>
        </form>
    </body>
</html>

这是我试图路由到的代码的html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Catan</title>
        <script src="{{ url_for('static', filename="css/main.css")}}"></script>
    </head>
    <body>

        <canvas id="canvas" ></canvas>
        <script src="{{ url_for('static', filename="js/board.js")}}"></script>
        <script src="{{ url_for('static', filename="js/game.js")}}"></script>
        <script src="{{ url_for('static', filename="js/location.js")}}"></script>
        <script src="{{ url_for('static', filename="js/main.js")}}"></script>
        <script src="{{ url_for('static', filename="js/player.js")}}"></script>
    </body>
</html>

当我按下按钮时,我不允许使用405方法。我感谢任何帮助。

提问于
用户回答回答于

索引视图不允许post方法。

你需要更换

<form method="post" action='{{url_for('index')}}'>

通过

<form method="post" action='{{url_for('homepage')}}'>

如果你想在索引url中执行post方法,你需要在你的索引视图中添加methods = ['GET','POST'],如下所示:

@app.route('/index', methods=['GET', 'POST'])
def index():
    # write your code here
    return render_template('index.html')

扫码关注云+社区

领取腾讯云代金券