from peewee import * from pathlib import Path db = DatabaseProxy() class BaseModel(Model): class Meta: database = db db_table = 'journal' # model for a single journal entry class JournalEntry(BaseModel): # the date of the entry date = DateField() # the text of the entry text = TextField() media_path = TextField() author = TextField() @property def media(self): return Path(self.media_path).open('rb') @media.setter def media(self, media): self.media_path = Path(media).absolute() self.save() def set_db(db_path): db.initialize(SqliteDatabase(db_path)) db.connect() db.create_tables([JournalEntry], safe=True)