mongodb flask 错误:不允许的方法请求的URL不允许使用该方法,(将文件瓶连接到数据库)

ryoqjall  于 2023-03-17  发布在  Go
关注(0)|答案(1)|浏览(114)

我正在尝试将我的 flask 连接到数据库,但它显示以下错误-405我仍然是一个学习 flask ,我无法找出问题
enter image description here
app1.py

from flask import *
from pymongo import MongoClient

app = Flask(__name__)

client = MongoClient("mongodb://127.0.0.1:27017")

db = client['STUDENT']

studentdetails = db.DETAILS



@app.route("/crudexample")
def sample10():
    return render_template('studentform.html')

@app.route("/success", methods=['GET', 'POST'])
def onsubmit():
    fname = request.form.get('fn')
    lname = request.form.get('ln')
    rollno = request.form.get('regno')
    mob = request.form.get('mb')

    a = {"First Name": fname, "Last Name": lname,
         "Regd Number": rollno, "Mobile Number": mob}

    studentdetails.insert_one(a)

    return "Successfully Inserted"

if __name__ == "__main__":
    app.run(debug=True)

这是我的python代码的 flask 和我的代码的html形式如下:
studentform.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form method="POST" action="/success">
            First Name: <input type="text" name="fn"><br>
            Last Name: <input type="text" name="ln"><br>
            Regd. No:<input type="number" name="regno"><br>
            Mobile Number: <input type="number" name="mb"><br>
            <br>
            <input type="submit" value="Click Here">
       </form>

</form>
</body>
</html>
9vw9lbht

9vw9lbht1#

您应区分代码中的GETPOST方法,如果您的Flask应用配置为仅允许对某个端点的POST请求,并且您尝试对该端点发出GET请求,则会引发405不允许方法。
例如,您可以使用以下内容进行少许修改

@app.route("/success", methods=['GET', 'POST'])
def onsubmit():
    if request.method == "POST":
        fname = request.form.get('fn')
        lname = request.form.get('ln')
        rollno = request.form.get('regno')
        mob = request.form.get('mb')

        a = {"First Name": fname, "Last Name": lname,
             "Regd Number": rollno, "Mobile Number": mob}

        studentdetails.insert_one(a)
        return "Successfully Inserted"
    else:
        # handle the GET request method, this one
        # just returned in the client-side in this template
        return render_template('studentform.html')

相关问题