不允许使用烧瓶方法

时间:2019-05-22 23:37:22

标签: python html flask http-status-code-405

我正在进行Flask项目,但遇到未找到方法的错误。我只是试图按提交按钮从主页转到游戏页面。我不知道哪里出了问题。

我知道这个问题已经被问过几次了,但是我已经尝试了所有这些问题,但仍然出现错误。

这是我的路线文件:

filluntil = ts['check-out'].ffill()
m = ts.index < filluntil.values

#reshaping the mask to be shame shape as ts
m = np.repeat(m, ts.shape[1]).reshape(ts.shape)

ts = ts.ffill().where(m)

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

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>

当我按下按钮时,我得到的405方法是不允许的。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

索引视图不允许使用post方法。

您需要更换

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

作者

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

如果要在索引URL中执行post方法,则需要将method = ['GET','POST']添加到索引视图中,如下所示:

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