from sqlalchemy import Column, Integer, String, Boolean, DateTime, Text, ForeignKey from sqlalchemy.orm import relationship from datetime import datetime from src.database import Base,db_session from marshmallow import Schema, fields import json import flask #from src.articles import Article class SectionSchema(Schema): id=fields.Integer() foreign_name=fields.String() name=fields.String() class Section(Base): __tablename__ = 'sections' id = Column(Integer, primary_key=True) url = Column(String(250)) crawlurl = Column(Integer) foreign_name = Column(String(250),unique=True) name=Column(String(250)) group = Column(String(250)) articles=relationship("Article", back_populates="section") def __json__(self): return SectionSchema().dump(self)[0] def __init__(self, url=None,fname=None): self.url=url self.foreign_name=fname def title(self): t=self.name if t == None or t.strip()=="": t=self.foreign_name return t @classmethod def find_or_create(cls, fname): s=Section.query.filter(Section.foreign_name==fname).first() if s is None: s=Section(fname) db_session.add(s) db_session.commit() s.foreign_name=fname db_session.add(s) db_session.commit() return s