# 1.- Primeros pasos
Vamos a comenzar con las instalaciones necesarias para configurar nuestro proyecto utilizando MongoDb y Python.
# Instalando Virtualenv
Entorno virtual Proyecto que va estar aislado de los demas, es decir cada proyecto tiene sus propias dependencias, paquetes.
$ pip install virtualenv
# Creando un entorno virtual dentro de nuestro proyecto
Para eso tienes que crear una carpeta nueva y abrila en cualquier editor de código
$ virtualenv venv
# Crear una carpeta SRC
Creamos una carpeta llamada "src" y dentro un archivo "app.py"
# Activamos virtualenv
source ./venv/bin/activate
# Instalando Modulos principales
Instalando Flask y MongoDb, solo se instalara en nuestro proyecto por eso estamos utilizando un entorno virtual. https://flask-pymongo.readthedocs.io/en/latest/ (opens new window)
$ pip install Flask-PyMongo
# En "app.py" escribimos
from flask import Flask
from flask_pymongo import PyMongo
app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/nombre-de-la-base-de-datos"
mongo = PyMongo(app)
# Abrimos o activamos mongo
mongod
# Si mongo no quiere activarse puedes solucionarlo con los siguientes comandos
mongo start
service mongod restart
______________________________
I face same issue after searching a lot I solve this by following :
sudo service mongodb stop
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair --dbpath /var/lib/mongodb
sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb
mongo
# En el archivo "app.py" escribimos lo siguiente
@app.route("/users", methods=["POST"])
def create_user():
return {'menssaje': 'received'}
Para mirar por pantalla los datos que van a ser enviados desde Postman necesitamos importar request "print(request.json)"
from flask import Flask, request
@app.route("/users", methods=["POST"])
def create_user():
print(request.json)
return {'menssaje': 'received'}
# Abrimos Postman
postman&
Esribimos la siguiente ruta:
http://localhost:5000/users
Vamos a Header y dentro escribimos
Content-Type - application/json
Luego vamos a raw y escrimos un usuario en formato JSON y enviamos la petición por consola
{
"username": "roma"
}
# Enviando un POST para que se guarde y cree la base de datos
borramos el print(request.json) y escribimos para guardarlos y encriptar la contraseña
username = request.json["username"]
email = request.json["email"]
password = request.json["password"]
if username and password and email:
hashed_password = generate_password_hash(password)
id = mongo.db.users.insert(
{"username": username, "email": email, "password": hashed_password}
)
response = {
"id" : str(id),
"username" : username,
"email" : email,
"password" : password,
}
return response
else:
{'menssage': 'necesito los datos'}
# Encriptamos la contaseña
Para eso debemos de importar
from werkzeug.security import generate_password_hash, check_password_hash
Despúes creamos una variable "hashed_passwoord" donde dentro estara
hashed_password = generate_password_hash(password)
# El código terminaria así
from flask import Flask, request
from flask_pymongo import PyMongo
from werkzeug.security import generate_password_hash, check_password_hash
app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/pythonmongo"
mongo = PyMongo(app)
@app.route("/users", methods=["POST"])
def create_user():
username = request.json["username"]
email = request.json["email"]
password = request.json["password"]
if username and email and password:
hashed_password = generate_password_hash(password)
id = mongo.db.users.insert(
{"username": username, "email": email, "password": hashed_password}
)
response = {
"id" : str(id),
"username" : username,
"email" : email,
"password" : hashed_password,
}
return response
else:
return {'mensaje': 'necesito los datos'}
return {'menssaje': 'received'}
if __name__ == '__main__':
app.run(debug=True)