face2 / database.py
Mahir1426's picture
Upload 11 files
8285ce5 verified
import os
import cloudinary
import cloudinary.uploader
from pymongo import MongoClient
from dotenv import load_dotenv
from datetime import datetime
# Load environment variables from .env file
load_dotenv()
# --- Cloudinary Configuration ---
cloudinary.config(
cloud_name=os.getenv("CLOUDINARY_CLOUD_NAME"),
api_key=os.getenv("CLOUDINARY_API_KEY"),
api_secret=os.getenv("CLOUDINARY_API_SECRET")
)
# --- MongoDB Configuration ---
MONGO_URI = os.getenv("MONGO_URI")
client = MongoClient(MONGO_URI)
db = client.get_database("face_shape_db") # You can name your database
analyses_collection = db.get_collection("analyses") # You can name your collection
def upload_image_to_cloudinary(image_file):
"""Uploads an image file to Cloudinary and returns the secure URL."""
try:
upload_result = cloudinary.uploader.upload(image_file)
return upload_result.get("secure_url")
except Exception as e:
print(f"Error uploading to Cloudinary: {e}")
return None
def save_analysis_to_db(image_url, face_shape, measurements):
"""Saves the analysis results to MongoDB."""
try:
analysis_data = {
"image_url": image_url,
"face_shape": face_shape,
"measurements": measurements,
"created_at": datetime.utcnow()
}
result = analyses_collection.insert_one(analysis_data)
return str(result.inserted_id)
except Exception as e:
print(f"Error saving to MongoDB: {e}")
return None