from framework.main import Render from models import site, User, Course from logging_mod import Logger, debug logger = Logger('main') class Index: @debug def __call__(self, request): logger.log('Главная страница') data = { 'title': 'Главная страница', } content = render('index.html', object_list=data) code = '200 OK' return code, content class CreateCourse: @debug def __call__(self, request): logger.log('Создание курсов') categories = site.categories data = { 'title': 'Создание курсов', 'categories': categories, } content = render('create_course.html', object_list=data) code = '200 OK' return code, content
from logging_mod import Logger, debug from models import TrainingSite from my_framework import render, Application # Создание копирование курса, список курсов # Регистрация пользователя, список пользователей # Логирование site = TrainingSite() LOGGER = Logger('main') def application(app): return app def main_view(request): my_key, my_title = request.get( 'my_key', None), request.get('my_title', None) # Используем шаблонизатор return '200 OK', render('index.html', my_key=my_key, my_title=my_title) def course_list_view(request): LOGGER.log(f'Список курсов - {site.courses}') return '200 OK', render('course_list.html', objects_list=site.courses) @debug def create_course_view(request): if request['method'] == 'POST':
import os import sys from reusepatterns.prototypes import PrototypeMixin from reusepatterns.observer import Subject, Observer import jsonpickle from my_orm.unitofwork import DomainObject from logging_mod import Logger BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR) sys.path.append(os.path.join(BASE_DIR, 'my_orm')) logger = Logger('model') # абстрактный пользователь class User: def __init__(self, name): self.name = name # преподаватель class Teacher(User): pass # студент class Student(User, DomainObject): id = None
import quopri import views from logging_mod import Logger from wsgiref.util import setup_testing_defaults logger = Logger('core') # функция исправляет проблемы кодировки кирилических символов def decode_value(val): val_b = bytes(val.replace('%', '=').replace("+", " "), 'UTF-8') val_decode_str = quopri.decodestring(val_b) return val_decode_str.decode('UTF-8') class Application(): def __init__(self, routes: dict, fronts: list): self.routes = routes self.fronts = fronts def add_route(self, url): # паттерн-декоратор def inner(view): self.routes[url] = view return inner def parse_input_data(self, data): result = {} if data: # делим параметры через &
import sqlite3 from models import Student, Category, Course from logging_mod import Logger logger = Logger('mappers') connection = sqlite3.connect('patterns.sqlite') class RecordNotFoundException(Exception): def __init__(self, message): super().__init__(f'Record not found: {message}') class DbCommitException(Exception): def __init__(self, message): super().__init__(f'Db commit error: {message}') class DbUpdateException(Exception): def __init__(self, message): super().__init__(f'Db update error: {message}') class DbDeleteException(Exception): def __init__(self, message): super().__init__(f'Db delete error: {message}') class StudentMapper: def __init__(self, connection):