minor: some preparations to test
This commit is contained in:
parent
e73cd46611
commit
bfa3383a7c
@ -3,9 +3,28 @@ from flask_login import LoginManager
|
|||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from flask_migrate import Migrate
|
from flask_migrate import Migrate
|
||||||
from yaml import safe_load
|
from yaml import safe_load
|
||||||
|
from logging import getLogger
|
||||||
|
from logging.config import fileConfig
|
||||||
|
from os import makedirs
|
||||||
|
from os.path import dirname, exists
|
||||||
|
|
||||||
|
try:
|
||||||
|
dir_name = dirname(__file__)
|
||||||
|
if dir_name:
|
||||||
|
DIR = dir_name + "/"
|
||||||
|
else:
|
||||||
|
DIR = "./"
|
||||||
|
except NameError:
|
||||||
|
DIR = "./"
|
||||||
|
|
||||||
|
if not exists(DIR + "logs"):
|
||||||
|
makedirs(DIR + "logs")
|
||||||
|
|
||||||
|
fileConfig(DIR + "configs/log.conf")
|
||||||
|
LOGGER = getLogger("root")
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.config.from_file("config.yaml", safe_load)
|
app.config.from_file("configs/config.yaml", safe_load)
|
||||||
db = SQLAlchemy(app)
|
db = SQLAlchemy(app)
|
||||||
migrate = Migrate(app, db, render_as_batch=True)
|
migrate = Migrate(app, db, render_as_batch=True)
|
||||||
login = LoginManager(app)
|
login = LoginManager(app)
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
database:
|
|
||||||
host: "hostname or ip"
|
|
||||||
port: "port"
|
|
||||||
database: "databasename"
|
|
||||||
user: "username"
|
|
||||||
password: "password"
|
|
||||||
3
app/configs/config.yaml.template
Normal file
3
app/configs/config.yaml.template
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
SECRET_KEY: "MY_5€cr37_K€Y"
|
||||||
|
SQLALCHEMY_DATABASE_URI: "dialect+driver://username:password@host:port/database"
|
||||||
|
SQLALCHEMY_TRACK_MODIFICATIONS: False
|
||||||
31
app/configs/log.conf
Normal file
31
app/configs/log.conf
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[loggers]
|
||||||
|
keys=root, main
|
||||||
|
|
||||||
|
[handlers]
|
||||||
|
keys=console, file
|
||||||
|
|
||||||
|
[formatters]
|
||||||
|
keys=stdout
|
||||||
|
|
||||||
|
[logger_root]
|
||||||
|
handlers = console, file
|
||||||
|
level = DEBUG
|
||||||
|
|
||||||
|
[logger_main]
|
||||||
|
handlers = console, file
|
||||||
|
level = DEBUG
|
||||||
|
qualname = main
|
||||||
|
|
||||||
|
[handler_console]
|
||||||
|
class = logging.StreamHandler
|
||||||
|
level = DEBUG
|
||||||
|
formatter = stdout
|
||||||
|
|
||||||
|
[handler_file]
|
||||||
|
class = logging.FileHandler
|
||||||
|
level = INFO
|
||||||
|
formatter = stdout
|
||||||
|
kwargs = {"filename": "app/logs/infos.log"}
|
||||||
|
|
||||||
|
[formatter_stdout]
|
||||||
|
format = %(asctime)s [%(threadName)s] [%(levelname)s]: %(message)s
|
||||||
@ -1,24 +1,6 @@
|
|||||||
from os.path import dirname
|
from app import LOGGER
|
||||||
from psycopg2 import connect as psyconn, ProgrammingError, errors
|
from psycopg2 import connect as psyconn, ProgrammingError, errors
|
||||||
from yaml import safe_load
|
from yaml import safe_load
|
||||||
import logging
|
|
||||||
|
|
||||||
|
|
||||||
DIR = dirname(__file__) + "/"
|
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
|
||||||
LOGGER.setLevel(logging.DEBUG)
|
|
||||||
logFormatter = logging.Formatter(
|
|
||||||
"%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s")
|
|
||||||
|
|
||||||
fileHandler = logging.FileHandler(DIR + "../../logs/database.log")
|
|
||||||
fileHandler.setFormatter(logFormatter)
|
|
||||||
fileHandler.setLevel(logging.INFO)
|
|
||||||
LOGGER.addHandler(fileHandler)
|
|
||||||
|
|
||||||
consoleHandler = logging.StreamHandler()
|
|
||||||
consoleHandler.setLevel(logging.DEBUG)
|
|
||||||
LOGGER.addHandler(consoleHandler)
|
|
||||||
|
|
||||||
|
|
||||||
class Database:
|
class Database:
|
||||||
@ -27,7 +9,7 @@ class Database:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
def connect(self, **kwargs):
|
def connect(self, **kwargs):
|
||||||
with open(DIR + 'config.yaml', 'r') as file:
|
with open('configs/config.yaml', 'r') as file:
|
||||||
data = safe_load(file)['database']
|
data = safe_load(file)['database']
|
||||||
LOGGER.debug('Merging passed arguments with default arguments.')
|
LOGGER.debug('Merging passed arguments with default arguments.')
|
||||||
for key, value in data.items():
|
for key, value in data.items():
|
||||||
|
|||||||
41
app/views.py
41
app/views.py
@ -1,31 +1,8 @@
|
|||||||
from app import app
|
from app import app, LOGGER
|
||||||
from app.database import Database
|
from app.database import Database
|
||||||
from app.forms import NewItemForm
|
from app.forms import NewItemForm
|
||||||
from flask import abort, request, render_template
|
from flask import abort, request, render_template
|
||||||
from flask.json import jsonify
|
from flask.json import jsonify
|
||||||
from os import makedirs
|
|
||||||
from os.path import dirname, exists
|
|
||||||
import logging
|
|
||||||
|
|
||||||
|
|
||||||
DIR = dirname(__file__) + "/"
|
|
||||||
|
|
||||||
if not exists(DIR + "../../logs"):
|
|
||||||
makedirs(DIR + "../../logs")
|
|
||||||
|
|
||||||
LOGGER = logging.getLogger(__name__)
|
|
||||||
LOGGER.setLevel(logging.DEBUG)
|
|
||||||
logFormatter = logging.Formatter(
|
|
||||||
"%(asctime)s [%(threadName)s] [%(levelname)s] %(message)s")
|
|
||||||
|
|
||||||
fileHandler = logging.FileHandler(DIR + "../../logs/server.log")
|
|
||||||
fileHandler.setFormatter(logFormatter)
|
|
||||||
fileHandler.setLevel(logging.INFO)
|
|
||||||
LOGGER.addHandler(fileHandler)
|
|
||||||
|
|
||||||
consoleHandler = logging.StreamHandler()
|
|
||||||
consoleHandler.setLevel(logging.DEBUG)
|
|
||||||
LOGGER.addHandler(consoleHandler)
|
|
||||||
|
|
||||||
DATABASE = Database()
|
DATABASE = Database()
|
||||||
|
|
||||||
@ -38,6 +15,8 @@ def index():
|
|||||||
|
|
||||||
@app.route('/test')
|
@app.route('/test')
|
||||||
def test():
|
def test():
|
||||||
|
if request.args:
|
||||||
|
LOGGER.debug(request.args['testing'])
|
||||||
form = NewItemForm()
|
form = NewItemForm()
|
||||||
return render_template("test.html", form=form)
|
return render_template("test.html", form=form)
|
||||||
|
|
||||||
@ -67,11 +46,15 @@ def insert():
|
|||||||
case _:
|
case _:
|
||||||
abort(400)
|
abort(400)
|
||||||
|
|
||||||
@app.route(f'/{APPNAME}/<string:user>', methods=['GET'])
|
@app.route(f'/{APPNAME}/overview', methods=['GET'])
|
||||||
@app.route(f'/{APPNAME}/<int:year>/<int:month>', methods=['GET'])
|
def get_report_from_user():
|
||||||
@app.route(f'/{APPNAME}/<string:user>/<int:year>', methods=['GET'])
|
user, month, year = []*3
|
||||||
@app.route(f'/{APPNAME}/<string:user>/<int:year>/<int:month>', methods=['GET'])
|
if request.args:
|
||||||
def get_monthly_report_from_user(user: str = None, year: int = None, month: int = None):
|
args = request.args
|
||||||
|
if 'month' in args:
|
||||||
|
month = args['month']
|
||||||
|
if 'year' in args:
|
||||||
|
year = args['year']
|
||||||
if month and (month > 12 or month < 1):
|
if month and (month > 12 or month < 1):
|
||||||
abort(400)
|
abort(400)
|
||||||
LOGGER.info("Getting results.")
|
LOGGER.info("Getting results.")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user