尽管使用 POST,但不允许使用 Flask 方法

蓝达巴迪

我试图在树莓派上创建一个基本的登录页面,但是当我尝试登录该页面时,我不断收到 405 错误。我已经研究过这个问题,但它似乎只有在您没有使用正确的方法时才会出现,但由于它是一个登录屏幕,POST 和 GET 应该绰绰有余。

Python

from flask import Flask
from flask import Flask, flash, redirect, render_template, request, session, abort
import os

app = Flask(__name__)

@app.route('/')
def home():
    if not session.get('logged_in'):
        return render_template('login.html')
    else:
        return "Hello Boss!"

@app.route('/login', methods=['POST', 'GET'])
def do_admin_login():
    if request.form['psw'] == 'password' and request.form['id'] == 'admin':
        print ("Hey ya!")
    else:
        print('wrong password!')
    return home()

if __name__ == "__main__":
    app.secret_key = os.urandom(12)
    app.run(debug=True,host='0.0.0.0', port=80)

HTML

<!DOCTYPE html>
<html>
<body>
<h1>Please login</h1
<form method="POST">
    <input name="id" type="text" placeholder="Enter UserID">
    <br>
    <input name="psw" type="password" placeholder="Enter Password">
    <input type="submit">
</form>
</body>
</html>

我已被重定向到一个不同的问题,该问题通过更改的操作部分来解决,但是我的没有操作,因此这不应该是同一问题。我曾尝试向其中添加一个动作元素,但这并没有改变任何东西

摇滚乐

问题是你需要action在 HTML 中指定属性:

<form method="POST" action="{{url_for('do_admin_login')}}">
    <input name="id" type="text" placeholder="Enter UserID">
    <br>
    <input name="psw" type="password" placeholder="Enter Password">
    <input type="submit">
</form>

您可能会注意到,我使用url_for函数通过提供的方法(do_admin_login()在本例中为 )生成到给定端点的 URL 所以值得一提的是,您需要将您的语句更改return home()return url_for("home").

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不允许使用 Flask 方法

Flask-不允许使用POST错误405方法

Flask-不允许使用POST错误405方法

Flask-POST-请求的网址不允许使用该方法

不允许使用Flask 405方法

不允许使用Django方法(POST)

不允许使用方法“ POST”

Flask错误:“不允许使用方法所请求的URL不允许使用该方法”

CORS策略中不允许使用请求方法POST

iis Express中不允许使用post方法

不允许使用Django + Angular方法PUT和POST

NGINX返回405不允许使用POST方法

Flask 不允许的方法

405:不允许使用方法(对Flask进行AJAX查询)

尝试使用Flask获取会话数据时方法不允许错误

如何在Flask中修复“请求的URL不允许使用该方法”

python中的flask应用程序不允许使用的方法

Slim Framework:不允许使用的方法不允许使用的方法。必须是以下之一:POST

Amazon S3-405方法不允许使用POST(尽管我在存储桶中允许POST)

405不允许使用Spring的方法

方法不允许使用滑轨

不允许使用 Laravel 方法

405尽管有CORS,仍不允许使用方法

飞行前响应FLASK CORS中Access-Control-Allow-Methods不允许使用方法PUT

Web api 2 POST方法不允许使用405方法

不允许使用的方法-Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException不支持POST方法

使用 ajax 方法 post laravel 出现错误 405(方法不允许)

带有额外操作和ModelViewset的Django rest框架不允许使用方法“ POST”

csrf-token POST 405(不允许使用方法)Laravel