我正在进行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方法是不允许的。感谢您的帮助。
答案 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')