/
Ulyanoff
/
asyncAPI
Обзор
Документация
Войти
/
Ulyanoff
/
asyncAPI
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/database/tables.py
69 строк
5 KB
Artem Ivochkin
чистка кода, ренейминг, рефакторинг
20 июн 2025, 17:27
20 июн 2025, 17:27
862884e
Код
Авторство
О чём код?
from datetime import datetime from sqlalchemy import Column, Integer, String, Text, DateTime, MetaData, Table from sqlalchemy.dialects import postgresql # служебный объект метаданных для описания таблиц --------------------------------------------------------------------- meta = MetaData() # Описание таблицы меню для Главного Меню main_menu = Table('mainmenu', meta, Column('id', Integer(), primary_key=True), Column('title', String(64), nullable=False), Column('url', String(256), nullable=False) ) default_users = [ {'name': 'Lee Ji-Eun', 'email': 'iu@ya.ru', 'time': datetime.now(), 'avatar': None, 'psw': 'pbkdf2:sha256:600000$E6zeNcWAdMGRxtAs$7dde9af9ea97e3b978e5e40a89d0e40536f7e199079f29b9be85986a1608aaa8'}, {'name': 'Uam12345', 'email': 'u@ya.ru', 'time': datetime.now(), 'avatar': None, 'psw': 'pbkdf2:sha256:600000$E6zeNcWAdMGRxtAs$7dde9af9ea97e3b978e5e40a89d0e40536f7e199079f29b9be85986a1608aaa8'}, {'name': 'Sil12345', 'email': 's@ya.ru', 'time': datetime.now(), 'avatar': None, 'psw': 'pbkdf2:sha256:600000$E6zeNcWAdMGRxtAs$7dde9af9ea97e3b978e5e40a89d0e40536f7e199079f29b9be85986a1608aaa8'}, ] # Описание таблицы для Статей posts = Table('posts', meta, Column('id', Integer(), primary_key=True), Column('title', String(256), nullable=False), Column('text', Text, nullable=False), Column('url', String(256), nullable=False), Column('time', DateTime, nullable=False) ) default_main_menu = [ {'title': 'Главная', 'url': '/'}, {'title': 'Добавить статью', 'url': '/add_post'}, {'title': 'Авторизация', 'url': '/login'}, {'title': 'Донаты', 'url': '/donate'}, ] # описание таблицы для Пользователей users = Table('users', meta, Column('id', Integer(), primary_key=True), Column('name', String(128), nullable=False), Column('email', String(128), nullable=False), Column('psw', String(256), nullable=False), Column('avatar', postgresql.BYTEA, nullable=True), Column('time', DateTime, nullable=False) ) default_posts = [ {'title': 'Про FastAPI', 'url': 'framework-fastapi-intro', 'time': datetime.now(), 'text': '<p>FastAPI — это асинхронный веб-фреймворк для языка Python, который предоставляет ' 'минимальный набор инструментов для создания веб-приложений. <br>На нём можно сделать и ' 'лендинг, и многостраничный сайт с кучей плагинов и сервисов. <br>Не фреймворк, а мечта!'}, {'title': 'Про SQLAlchemy', 'url': 'framework-sqlalchemy-intro', 'time': datetime.now(), 'text': 'Сила SQLAlchemy — в её ORM. Расшифровывается как object relational mapper, или ' '«объектно-реляционное отображение». <br>ORM позволяет управлять базами данных с помощью ' 'методов объектов в коде и при этом не использовать SQL-запросы. <br>На самом деле это очень ' 'удобно, так как позволяет писать привычный код, не переключаясь на SQL.'}, {'title': 'Про Python', 'url': 'python-intro', 'time': datetime.now(), 'text': 'Python — это скриптовый язык программирования. <br>Он универсален, поэтому подходит для ' 'решения разнообразных задач и для многих платформ: начиная с iOS и Android и заканчивая ' 'серверными операционными системами. <br>Это интерпретируемый язык, а не компилируемый, ' 'как C++ или Java. Программа на Python представляет собой обычный текстовый файл.'}, {'title': 'Про API', 'url': 'about_api', 'time': datetime.now(), 'text': 'К этому сайту можно обращаться через api:<br>' '/api/v1/users/count<br>' '/api/v1/users/list<br>' 'Это неплохой пример, т.к. любое api в конце концов сводится к вычислениями над базой.'}, ]