Скриншот архива с проектом
Структура проекта
Задание
Разработать простое веб-приложение на языке Python позволяющее вести учет научных работ. Приложение должно обладать базовым функционалом и выполнять базовые CRUD-операции. Кроме того должна быть реализована простейшая система регистрации и авторизации. Приложение должно быть реализовано на фреймворке Flask.
Разработать телеграмм-бота, который будет взаимодействовать с веб-приложением и будет обладать следующим функционалом: получение сведений о научных работах - публикациях и добавление новых публикаций.
Функционал программы
- регистрация и авторизация пользователей
- добавление публикаций
- вывод детальной информации о публикации
- редактирование данных
- удаление данных
- поиск данных - по автору.
Функционал программы (телеграмм-бот)
- вывод информации о научных публикациях
- добавление новых публикаций
Фрагмент программного кода
class Publication(db.Model): id = db.Column(db.Integer, primary_key=True) author_name = db.Column(db.String(100), nullable=False, info={'help_text': 'Введите автора', 'verbose_name': 'Автор'}) author_photo = db.Column(db.String(200), nullable=True) # Путь к изображению publication_name = db.Column(db.String(100), nullable=False, info={'help_text': 'Название', 'verbose_name': 'Название публикации'}) writing_date = db.Column(db.DateTime, nullable=False, default=datetime.now(timezone.utc), info={'help_text': 'Введите дату написания', 'verbose_name': 'Дата написания'}) publication_date = db.Column(db.DateTime, nullable=False, default=datetime.now(timezone.utc), info={'help_text': 'Введите дату публикации', 'verbose_name': 'Дата публикации'}) publication_place = db.Column(db.String(100), nullable=False, info={'help_text': 'Введите место публикации', 'verbose_name': 'Место публикации'}) CATEGORY_CHOICES = [ ('', 'Выберите категорию'), ('Книга', 'Книга'), ('Статья', 'Статья'), ('Доклад', 'Доклад'), ] publication_category = db.Column(db.String(50), nullable=False, info={'verbose_name': 'Категория'}) def __repr__(self): return f'<Publication {self.author_name}, {self.publication_name}>'
Пояснения по запуску программы
Подробная инструкция по работе с веб-приложением
- Скачать и установить интерпретатор Python с официального сайта - https://www.python.org/Вы можете скачать последнюю версию.
Но было бы гораздо лучше, если вы установите версию 3.12.3.
- Скачать и установить среду разработки – это может быть как PyCharm Community - https://www.jetbrains.com/pycharm/download/?section=windows Так и Visual Studio Code - https://code.visualstudio.com/download
После установки всего выше описанного, настройте VS Code для работы с Python установив необходимые расширения (см. инструкцию - https://youtu.be/j5e5gwZgMH8) . Если используете PyCharm то необходимо зайти в настройки, выбрать данный проект AccountingPublications и выбрать интерпретатор. При необходимости переустановить библиотеки: Flask, Flask-Login, Flask-Bootstrap, Flask-SQLAlchemy, email-validator, Flask-WTF и ряд других которые будут выделятся как не установленные.
Запускаете приложение и пользуетесь. Также вы можете самостоятельно выложить проект на Heroku или любой другой хостинг по вашему выбору .
Подробная инструкция по работе с телеграмм-ботом
- Запускаем мессенджер Telegram и находим там бота – BotFather.
- Выбираем menu – new bot.
- Вводите имя бота. Бот предложит ввести имя пользователя для бота – вводите имя пользователя с приставкой _bot.
- BotFather пришлёт ссылку – для запуска бота и токен, который нужно ввести в файл config.py – то есть нужно заменить прописанный там токен на тот, что выдаст вам BotFather.
- Запускаете бота. Заходите в Telegram – BotFather – ссылка на вашего бота – Запустить - /start. Вы увидите следующее: клавиатуру с двумя кнопками.
- Выбираете одну из команд: Добавить публикацию или Показать публикации.
- Первая команда позволяет добавлять новую публикацию, а вторая выводит список всех публикаций (научных работ).
- Запускаете веб-приложение. Добавленная вами публикация появится на странице – publications.html .
admin