/
allelleo
/
UCarTopDoerTestTask
Обзор
Документация
Войти
/
allelleo
/
UCarTopDoerTestTask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
db.py
55 строк
1 KB
Овчинников Алексей Александрович
init commit
15 июл 2025, 12:49
15 июл 2025, 12:49
82148b7
Код
Авторство
О чём код?
import sqlite3 from typing import Optional from schemas import ReviewOut from settings import DB_PATH def insert_review(text: str, sentiment: str, created_at: str) -> int: conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() cursor.execute( "INSERT INTO reviews (text, sentiment, created_at) VALUES (?, ?, ?)", (text, sentiment, created_at) ) conn.commit() review_id = cursor.lastrowid conn.close() return review_id def get_reviews_by_sentiment(sentiment: Optional[str] = None) -> list[ReviewOut]: conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() if sentiment: cursor.execute("SELECT * FROM reviews WHERE sentiment = ?", (sentiment,)) else: cursor.execute("SELECT * FROM reviews") rows = cursor.fetchall() conn.close() return [ ReviewOut( id=row[0], text=row[1], sentiment=row[2], created_at=row[3] ) for row in rows ] def init_db(): conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS reviews ( id INTEGER PRIMARY KEY AUTOINCREMENT, text TEXT NOT NULL, sentiment TEXT NOT NULL, created_at TEXT NOT NULL ); """) conn.commit() conn.close()