繁体   English   中英

获取 http://localhost:5000/data 404(未找到)

[英]GET http://localhost:5000/data 404 (NOT FOUND)

我已经为用户输入创建了一个表单,并使用 flask 在 app.py 中运行它。我想要实现的是能够获取用户数据,然后将其保存到我的 mongodb 数据库中。 这是我的表格 html。

<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="../static/Recording.css">
    </head>
    
    <div class="header">
        <h1>Create a recording</h1>
    </div>

<body>
    <div class="create">
    <form name="formdata">
        <label for="trolley">Trolley</label>
        <input type="text" id=trolley name="trolley" size="180" required>

        <label for="datetime">Date & time</label><br>
        <input type="datetime-local" id="datetime" name="datetime"><br required>

        <label for="temp">Temperature</label>
        <input type="text" id="temp" name="temp" size="180" required>

        <input id="button1" type="submit" value="Record"">
    </form>

    <script src="https://cdn.jsdelivr.net/npm/papaparse@5.2.0/papaparse.min.js"></script>
    <script src="../static/Recording.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="../static/database.js"></script>
</body>
</html>

这是我的 app.py 文件

from flask import Flask, render_template, jsonify, json, request
from flask_pymongo import PyMongo
from pymongo import MongoClient

app = Flask(__name__)

#routes
from q2 import subroutes

client =  MongoClient("mongodb+srv://Stanislas:reddevils97@tma.p1mbs.mongodb.net/<dbname>?retryWrites=true&w=majority")
db = client.get_database("smarttrolley")
records = db.recordings

@app.route("/")
def home():
    return render_template('SmartTrolley.html')

@app.route("/userinput/")
def userInput():
    return render_template('Recording.html')

if __name__=='__main__':
    app.debug = True
    app.run(port=5000)
'''

这是我的 subroutes.py 文件,它处理用户数据并将其发布在路由“/data”中

from flask import Flask
from app import app
from q2.models import User

@app.route("/data", methods=["POST"])
def data():
    return User().input()

这是我的 models.py 文件,它从“/data”路径收集数据,然后继续将数据插入到我的 mongoDB 数据库中。

from flask import Flask, jsonify, request
from app import db, records

class User:

    def input(self):
        inputs = {
            "_id": "",
            "trolleyname": request.form.get('trolley'),
            "Date & Time": request.form.get('datetime'),
            "Temperature": request.form.get('temp')
        } 

        db.records.insert_one(inputs)

        return jsonify(inputs), 200

我正在使用 jquery ajax 调用发送数据。 每次用户提交数据时,我都能通过 console.log 接收数据,一切正常。 但是,我收到错误“GET http://localhost:5000/data 404 (NOT FOUND)”,这表明他们无法找到我的“/data”路由。 有没有人能帮助我找出问题所在,因为我已经将子路径导入到我的 app.py 中,但似乎没有任何效果。 谢谢你

在您的代码中只允许使用 POST 方法

@app.route("/data", methods=["POST"])
def data():
   return User().input()

#你在这里使用的是GET方法

获取 http://localhost:5000/data 404(未找到)

将上面的代码更改为以下代码:

@app.route("/data", methods=["GET"])
def data():
    return User().input()

#或者你可以点击 POST 请求

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM