【问题标题】:'Method Not Allowed: The method is not allowed for the requested URL.' when submitting text entry“不允许的方法:请求的 URL 不允许该方法。”提交文本输入时
【发布时间】:2022-02-10 22:53:37
【问题描述】:

我正在运行flask python和HTML,问题很简单:

它给了我错误 405:不允许的方法:请求的 URL 不允许该方法。我查了一下,有人说要在页面路由中包含 methods=['GET', 'POST'],但我已经有了。

Python 代码:

@app.route('/')
@app.route('/home/', methods=['GET', 'POST'])
def home():
    global count
    guess = request.form.get('guess')
    result, valid = guess_word(guess, word, words)
    print(result, valid)
    try:
            guesses[count-1][2] = 'p'
    except:
            guesses[count-1][2] = ''
    if count < 6:
        if valid:
            guesses[count][0] = guess
            guesses[count][1] = result
    session['guesses'] = guesses
    if valid:
        count += 1
    return render_template('index.html', guesses=session['guesses'])

HTML 代码:

<div class="container2">
    <form method="post">
        <input type="text" placeholder="Guess" class="text-input" name="guess">
    </form>
</div>

这之前有效,我没有改变(我认为是什么),但它突然停止工作。当我提交文本条目时,它给了我错误。

【问题讨论】:

  • 您是否尝试将方法也添加到'/'?

标签: python html flask


【解决方案1】:

您的表单没有action 属性,即您在提交表单时没有明确说明您的数据应该去哪里。在没有action 属性的情况下,它将假定您的主页是/,并且从您的路由来看,这不支持POST

2 种可能的解决方案

  1. action 属性添加到您的表单中
<form action ="home" method ="post">
  1. 保持您的数据不变,并为/ 的路由添加对 POST 的支持,即将您的路由代码更改为
@app.route('/', methods=['GET', 'POST'])
@app.route('/home/', methods=['GET', 'POST'])

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 2017-01-10
    • 2014-01-08
    • 2020-07-30
    • 2021-08-16
    • 2016-04-23
    • 2023-03-09
    • 2021-11-13
    • 2020-03-05
    相关资源
    最近更新 更多