Aide à l'entretien
Préparation à l'entretien
CV
Recherche d'emploi
Ressources
Abonnement
FR
Telegram
Connexion
Ouvrir le menu
Aide à l'entretien
Assistant IA
Extension du navigateur
Analyse des entretiens
Ressources
Télécharger
FAQ / Aide
Préparation à l'entretien
Banque de questions
Banque d'entretiens
Entretiens simulés
Mentors
Ressources
FAQ / Aide
Recherche d'emploi
Automatisation de la recherche d'emploi
Analyse du marché
Offres d'emploi sur Telegram
Entreprises
Ressources
Carrières
Blogue
FAQ / Documentation
TelegramBlog
Telegram Assistance
Juridique
Remboursement
Conditions
Confidentialité
Ayants droit
Retour aux questions
Banque de questions
Python - Développeur
Question
Middle
importer json depuis fastapi importer APIRouter, Depends depuis sqlalchemy importer select depuis sqlalchemy.ext.asyncio importer AsyncSession depuis redis importer Redis depuis src.infrastructure.storage.db.models.product importer ProductDB depuis src.infrastructure.storage.db.models.factory importer FactoryDB router = APIRouter() redis = Redis.from_url("redis://localhost:6379/0") @router.get("/products/serials") async def get_serials_by_ids( ids: str, db: AsyncSession = Depends(get_db), ): product_ids = [int(x) for x in ids.split(",")] items = [] for product_id in product_ids: raw = redis.get(f"serial:{product_id}") if raw: items.append(json.loads(raw)) continue product = await db.get(ProductDB, product_id) factory = ( await db.execute(select(FactoryDB).where(FactoryDB.code == product.factory)) ).scalar_one() item = { "id": product.id, "serial_number": product.serial_number, "factory_number": factory.number, } redis.set(f"serial:{product_id}", json.dumps(item)) items.append(item) await db.commit() return items
Marquer comme terminé
Précédent
Suivant