flask приложение распечатывает данные из pymon go аккуратно на локальном хосте, но неорганизованно при запуске в контейнере - PullRequest
0 голосов
/ 06 августа 2020

У меня есть api, который я построил для своего mongodb с помощью pymon go:

from flask import Flask,jsonify,request
from flask_pymongo import PyMongo
from pymongo import errors
import os
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

mongodb_endpoint = os.environ.get("DB_ENDPOINT", "chaos.mongodb.openshift")
db_name = os.environ.get("DB_NAME", "chaos")
listen_port = int(os.environ.get("LISTEN_PORT", 5001))

mongodb_uri = f"mongodb://{mongodb_endpoint}/{db_name}"
app.config['MONGODB_NAME'] = db_name
app.config['MONGO_URI'] = mongodb_uri

mongo   = PyMongo(app)

@app.route('/servers',methods=['GET'])
@app.route('/server',methods=['GET'])
def get_all_servers():
    collection = "servers"
    expected_returned_keys = ["dns","active","groups",'os_type']
    output = get_all_objects(collection, expected_returned_keys)
    return output

def get_all_objects(collection,expected_returned_keys):
    # Easyiest way to use a string as a property of an object
    objects = eval(f"mongo.db.{collection}")
    output = []
    for query in objects.find():
        found_object = {}
        for key in expected_returned_keys :
            found_object[key] = query[key]
        output.append(found_object)

    return jsonify(output), 200

когда я запускаю api на своем локальном хосте и открываю маршрут в моем браузере, данные отображаются очень аккуратно: [ ! [изображение с аккуратным выводом] [1]] [1]

, но когда я пытаюсь запустить приложение в готовом к продукту контейнере (с nginx и uwsgi), оно выходит очень неорганизованным:

[! [Изображение с некрасивым выводом] [2]] [2]

как один и тот же точный код может давать разные результаты? [1]: https://i.stack.imgur.com/1kpKU.png [2]: https://i.stack.imgur.com/0gkqd.png

...