首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不允许使用Flask方法

不允许使用Flask方法
EN

Stack Overflow用户
提问于 2019-05-23 07:37:22
回答 1查看 168关注 0票数 -1

我正在处理一个flask项目,并得到一个找不到方法的错误。我只是想从我的主页转到我的游戏页面在按下提交按钮。我不知道我错在哪里。

我知道这个问题已经被问了好几次了,但我已经尝试了这些问题中的所有问题,但仍然得到一个错误。

这是我的路由文件:

代码语言:javascript
复制
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代码:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<!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方法。我很感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-23 09:54:11

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

你需要更换

代码语言:javascript
复制
<form method="post" action='{{url_for('index')}}'>

通过

代码语言:javascript
复制
<form method="post" action='{{url_for('homepage')}}'>

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

代码语言:javascript
复制
@app.route('/index', methods=['GET', 'POST'])
def index():
    # write your code here
    return render_template('index.html')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56266285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档