Guardar informació en Python a una base de dades MongoDB
Amb la continuació del nostre projecte Python, afegirem al fitxer servidorpost.py aquest codi, per guardar informació a una base de dades de MongoDB.
#instalem la llibreria MongoDB
from pymongo import MongoClient
# Conexio local MongoDB
cliente = MongoClient("mongodb://localhost:27017/")
# Seleccionem la base de dades
db = cliente["datamongo"]
# Seleciona la coleccio
coleccion = db["coleccio"]
documento = {
"nombre": "Alberto",
"edad": 17,
"ciudad": "Castellbisbal"
}
El fitxer final ha de quedar tal que així:
# Importacio de llibreries
from flask import Flask, request, jsonify
from flask_cors import CORS
from pymongo import MongoClient
# Creacio aplicacio Flask
app = Flask(__name__)
CORS(app)
# Conexio local MongoDB
cliente = MongoClient("mongodb://localhost:27017/")
# Seleccionem la base de dades
db = cliente["datamongo"]
# Seleciona la coleccio
coleccion = db["coleccio"]
documento = {
"nombre": "Alberto",
"edad": 17,
"ciudad": "Castellbisbal"
}
# Definim la ruta per escoltar i acceptar metode POST
@app.route('/dades', methods=['POST'])
def rebre_dades():
# Llegim el JSON
dades = request.get_json()
print("JSON rebut:", dades)
try:
# Inserim directament el JSON rebut
resultat = coleccio.insert_one(dades)
resposta = {'estat': 'dades guardades', 'id':str(resultat.inserted_id)}
except Exception as err:
print("error:", err)
resposta = {'estat': 'error', 'missatge': str(err)}
return jsonify(resposta), 200
# Creacio aplicaco Flask
app = Flask(__name__)
CORS(app)
# Instruccio per executar directament aquest fitxer
if __name__ == '__main__':
app.run(host='localhost', port=5000)