31 lines
707 B
Python
31 lines
707 B
Python
from peewee import *
|
|
import json
|
|
|
|
db = DatabaseProxy()
|
|
|
|
class BaseModel(Model):
|
|
class Meta:
|
|
database = db
|
|
db_table = 'journal'
|
|
|
|
class ListModel(BaseModel):
|
|
name = CharField(unique=True)
|
|
content = TextField(default="") # unlimited length, use to serialise list into
|
|
|
|
@property
|
|
def content_list(self):
|
|
return json.loads(self.content or '[]')
|
|
|
|
@content_list.setter
|
|
def content_list(self, list_content):
|
|
self.content = json.dumps(list_content)
|
|
with db:
|
|
self.save()
|
|
|
|
|
|
|
|
def set_db(db_path):
|
|
db.initialize(SqliteDatabase(db_path, pragmas={'journal_mode': 'wal'}))
|
|
db.connect()
|
|
db.create_tables([ListModel], safe=True)
|