From 7e81ea0b7419ae923a54b4b8696db8fddf666b21 Mon Sep 17 00:00:00 2001 From: Benjamin Sigonneau Date: Thu, 3 Jun 2021 00:31:22 +0200 Subject: [PATCH] Move models to a separate file --- balises.py | 39 +++++---------------------------------- config.py | 5 +++++ models.py | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 34 deletions(-) create mode 100644 config.py create mode 100644 models.py diff --git a/balises.py b/balises.py index 258d352..01f7c08 100755 --- a/balises.py +++ b/balises.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 from argparse import ArgumentParser -from configparser import ConfigParser import datetime as dt import bs4 @@ -10,39 +9,11 @@ import requests import os import urllib.parse -from peewee import * from bottle import hook, request, route, run, view - - -# ------------------------------------------------------------ -conf = ConfigParser() -conf.read(os.path.dirname(__file__) + '/balises.ini') - -db = MySQLDatabase(conf['mysql'].get('database'), - user=conf['mysql'].get('user'), - password=conf['mysql'].get('password'), - host=conf['mysql'].get('host', 'localhost'), - port=conf['mysql'].getint('port', 3306)) - -class BaseModel(Model): - class Meta: - database = db - -class Song(BaseModel): - id = AutoField() - artist = CharField(default='') - title = CharField(default='') - - class Meta: - indexes = ( - (('artist', 'title'), True), # Unique on artist + title - ) - -class AirCast(BaseModel): - id = AutoField() - date = DateTimeField() - song = ForeignKeyField(Song, backref='dates') +from config import conf +import models +from models import Song, AirCast, DoesNotExist # ---------------------------------------------------------------------- @@ -153,11 +124,11 @@ def set_locale(): @hook('before_request') def connect_to_db(): - db.connect() + models.db.connect() @hook('after_request') def close_db_connection(): - db.close() + models.db.close() # ---------------------------------------------------------------------- # Argument parsing diff --git a/config.py b/config.py new file mode 100644 index 0000000..f9749b0 --- /dev/null +++ b/config.py @@ -0,0 +1,5 @@ +from configparser import ConfigParser +import os + +conf = ConfigParser() +conf.read(os.path.dirname(__file__) + '/balises.ini') diff --git a/models.py b/models.py new file mode 100644 index 0000000..02a8044 --- /dev/null +++ b/models.py @@ -0,0 +1,32 @@ +from config import conf + +from peewee import MySQLDatabase +from peewee import Model +from peewee import AutoField, CharField, DateTimeField, ForeignKeyField + +from peewee import DoesNotExist + +db = MySQLDatabase(conf['mysql'].get('database'), + user=conf['mysql'].get('user'), + password=conf['mysql'].get('password'), + host=conf['mysql'].get('host', 'localhost'), + port=conf['mysql'].getint('port', 3306)) + +class BaseModel(Model): + class Meta: + database = db + +class Song(BaseModel): + id = AutoField() + artist = CharField(default='') + title = CharField(default='') + + class Meta: + indexes = ( + (('artist', 'title'), True), # Unique on artist + title + ) + +class AirCast(BaseModel): + id = AutoField() + date = DateTimeField() + song = ForeignKeyField(Song, backref='dates')