コード例 #1
0
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
コード例 #2
0
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':
コード例 #3
0
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
コード例 #4
0
ファイル: engin.py プロジェクト: VinogradovAU/my_framework
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:
            # делим параметры через &
コード例 #5
0
ファイル: mappers.py プロジェクト: VinogradovAU/my_framework
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):