Я работаю над веб-приложением Python (я новичок в Python), которое изначально подключено к Firebase, и я пытаюсь перейти на MongoDB. Проблема здесь в том, что я получаю коллекцию MongoDB, и мне не удается вставить документы в массив объектов, чтобы я мог отобразить их на веб-странице, было бы интереснее преобразовать коллекцию в список или массив значений ключей ?
Я пробовал кучу разных вещей, но в основном получаю ошибки типа
Мой код db_manager.py:
#pymongo connecting and retreiving collection (Devices)
client = MongoClient('localhost',27017)
db = client['db']
Devices =db.Devices
def select_devices():
#global firebase, database
# all_devices = list(Devices.find({}))
return all_devices
и это мой менеджер IHM в для l oop Я хочу добавить документы в Data, чтобы я мог отображать их на своей веб-странице
@app.route('/door_status', methods=['GET', 'POST'])
def door_status():
global identify
# Authentification check
if not identify:
return redirect(url_for('auth'))
data = []
error = None
for document in db.select_devices():
data.append((document.next()))
if request.method == 'POST':
# for device in elements :
env = bridge.KeyCoreEnvironment()
embedded = env.request_embedded(request.form['serial'], randrange(100000))
if request.form['type'] == "Car":
data = {"Name": request.form['name'], "Uuid": request.form['uuid'], "Type": request.form['type'],
"IsLock": True, "KC_Embedded_Id": embedded, "KC_Device_Id": "", "KC_Module_Id": ""}
db.insert_device(data)
return redirect(url_for('door_status'))
elif request.form['type'] == "Door":
data = {"Name": request.form['name'], "Uuid": request.form['uuid'], "Type": request.form['type'],
"IsLock": True, "IsOpen": False, "Battery": 100, "KC_Embedded_Id": embedded, "KC_Device_Id": "",
"KC_Module_Id": ""}
db.insert_device(data)
return redirect(url_for('door_status'))
else:
error = 'Invalid Type device. Please try again.'
return render_template('door_status.html', data=data, error=error)
Я пробовал это безуспешно, что я делаю не так? Как преобразовать коллекцию в словарь или массив и как добавить свои устройства в «Данные»?
Я использую pymongo==3.10.1
, Python 3.8.2
, flask-mongoengine==0.9.5