Проект MsfoStockBot - это сервис для инвесторов российского фондового рынка, включает в себя веб версию и телеграм бот(к учебному курсу по flask не отноститься и находится в соседнем репозитории) который работает через api веб версии. Перед тем как запустить проект, нужно установить все библиотеки из файла requirements.txt (набрать команду в терминале pip install -r requirements.txt). Запустить файл main.py.
Версия python 3.8.6+ (на более ранних версиях не проверял). Проект рабочий(https://msfostockweb.pythonanywhere.com/), прошу не снижать балл если Вы столкнулись с проблемами запуска. При регистрации, письмо с подтверждением электронной почты скорее всего попадёт в спам, ищите его там)
Воспользуйтесь зарегистрированными аккаунтами для тестирования функционала:
- Администратор - логин: [email protected] пароль: admin
- Редактор - логин: [email protected] пароль: editor
- Обычный пользователь - логин: [email protected] пароль: user
В проекте используется система ролей которая позволяет разграничить права пользователей.
Роль admin предоставляет панель администратора. С помощью панели администратора можно управлять любыми данными сайта, это: назначение ролей пользователям, создать/удалить пользователя, добавить/удалить отчёт компании, добавить/удалить api ключ, изменить информацию на главной странице, изменить информацию на главной странице панели администратора. Дополнительная функция - создание тестового пользователя, присутствует в профиле администратора. Создание тестового пользователя позволяет создать профиль с простым паролем (4 любых символа), а так же не требует подтверждения электронной почты.
Роль editor предоставляет возможность добавлять компании и отчёты, а так же их редактировать.
По заданию из мини проекта по Flask-WTF:
- Базовый шаблон находится templates/base.html он применён к каждой странице сайта.
- css стили полностью на bootstrap.
- Flask-WTF используется в проекте многократно, это создание тестового пользователя(user_profile\user_profile.py) под учёткой админа(без подтверждения почты и с упрощённым паролем), форма регистрации нового пользователя(user_profile\registration_form.py), добавление компании, если Вы, с правами администратора или редактора(msfo_records\forms).
- При создании тестового пользователя применяются различные поля: EmailField, PasswordField, StringField, SelectField, DateField прочитать о них можно в документации библиотеки flask-wtf. К полям пароля применены валидаторы InputRequired(обязательное поле), EqualTo(схожесть поля с подтвержением пароля), Length(длина мин. и макс.)
- В проекте множество функций представления со статическими маршрутами, а так же динамическим(
msfo_records\content_blueprint.py http://192.168.1.229:5000/msfo_records/<slug>/edit/)
. Функции представления обрабатывают GET и POST запросы.
Для управления базой данных используется библиотека Flask-SQLAlchemy, для регистрации и авторизации используется библиотека Flask-Security-Too, для панели администратора - Flask-Admin.