首页 > 解决方案 > 用于 mongodb 错误 404 的 Python 烧瓶 api

问题描述

我已经使用带有 mongodb 的 python 烧瓶编写了一个 rest api,并实现了一个与服务器应用程序通信但不断从 web 应用程序收到错误 404 的客户端设备程序。出于某种原因,我很难让我的 python 服务器合作。我想要做的是从 mongodb 集合中获取所有 JSON 数据,该集合的格式如下:

{
    Results:
        {'time1': 'TIME1_STR', 'temp1': 'TEMP1_STR'}
        {'time2': 'TIME2_STR', 'temp2': 'TEMP2_STR'}
        {'time3': 'TIME3_STR', 'temp3': 'TEMP3_STR'}
}`

如果条目列表包含相同的对象名称(例如时间),我可以迭代它们,这将返回集合的所有内容以及对象时间。但是,我需要返回对象 time1、time2 和 time3,而不是所有名称为 time 的对象。我还没有找到一种不会给我错误 404 的解决方法。例如,未注释的代码按对象名称 temp1 返回所有 json 对象数组,但是这不允许我获取 time2 的条目和代码注释部分中给出的 time3 数组。有人可以帮助我理解并解决此问题,以便我的项目正常工作吗?

应用程序.py

from flask import Flask, jsonify, json, request
from flask_pymongo import PyMongo
from pprint import pprint

"""***************************** INITIALIZE *********************************"""

# Initialize Flask
app = Flask(__name__)

# Configure MongoDB
app.config['MONGO_URI'] = 'mongodb://pkitsos:GoLobo$@localhost:27017/admin'

# Initialize MongoDB
mongo = PyMongo(app)


# [GET] retrieve list of logins
@app.route('/', methods=['GET'])
def get_all_logins():
    thermo = mongo.db.thermo

    output = []

    # Find all queries in login collection
    for q in thermo.find():
        output.append({'time1': q['time1'], 'temp1': q['temp1']})
    """
    for q in thermo.find().limit(1):    
        output.append({'time2': q['time2'], 'temp2': q['temp2']})
    for q in thermo.find().limit(1):    
        output.append({'time3': q['time3'], 'temp3': q['temp3']})
    """
    return jsonify({'result' : output})

标签: pythonjsonmongodbrestflask

解决方案


推荐阅读