Spaces:
Running
Running
| from sqlalchemy import create_engine, Column, String, Integer | |
| from sqlalchemy.ext.declarative import declarative_base | |
| from sqlalchemy.orm import sessionmaker | |
| from news_scraper.models.article import Article | |
| Base = declarative_base() | |
| class Database: | |
| def __init__(self, db_url): | |
| self.engine = create_engine(db_url) | |
| self.Session = sessionmaker(bind=self.engine) | |
| self.create_tables() | |
| def create_tables(self): | |
| Base.metadata.create_all(self.engine) | |
| def save_article(self, article: Article): | |
| session = self.Session() | |
| db_article = Article( | |
| url=article.url, | |
| title=article.title, | |
| description=article.description, | |
| score=article.score, | |
| ticker=article.ticker, | |
| ) | |
| session.add(db_article) | |
| session.commit() | |
| session.close() | |
| def close_connection(self): | |
| self.engine.dispose() |