Скриншот архива с проектом
Структура проекта
Задание
Разработать простое веб-приложение на языке Python? позволяющее вести учет арендованных автомобилей. Приложение должно обладать базовым функционалом и выполнять базовые CRUD-операции. Кроме того должна быть реализована простейшая система регистрации и авторизации. Приложение должно быть реализовано на фреймворке Flask.
Разработать телеграмм-бота, который будет взаимодействовать с веб-приложением и будет обладать следующим функционалом: получение сведений об арендованных автомобилях и добавление новой аренды.
Функционал программы (приложение Flask)
- регистрация и авторизация пользователей
- добавление сведений об аренде автомобиля
- вывод детальной информации об аренде
- редактирование данных
- удаление данных
- поиск данных - по арендатору.
Функционал программы (телеграмм-бот)
- вывод информации об арендованных автомобилях
- добавление сведений об аренде автомобиля
Содержание отчета к программе
Фрагмент программного кода (форма RentalForm)
class RentalForm(FlaskForm): renter_name = StringField('Арендатор', validators=[DataRequired()]) car_model = StringField('Модель автомобиля', validators=[DataRequired()]) car_photo = FileField('Фото автомобиля') rental_date = DateField('Дата аренды', format='%Y-%m-%d', validators=[DataRequired()]) return_date = DateField('Дата возврата автомобиля', format='%Y-%m-%d', validators=[DataRequired()]) rental_category = SelectField('Категория', choices=Rental.CATEGORY_CHOICES) rental_duration = IntegerField('Длительность аренды (в днях)', validators=[DataRequired()]) rental_cost = FloatField('Стоимость аренды', validators=[DataRequired()])
Фрагмент программного кода (Модель Rental)
class Rental(db.Model): id = db.Column(db.Integer, primary_key=True) renter_name = db.Column(db.String(100), nullable=False, info={'help_text': 'Введите арендатора', 'verbose_name': 'Арендатор'}) car_model = db.Column(db.String(100), nullable=False, info={'help_text': 'Введите модель', 'verbose_name': 'Модель авто'}) car_photo = db.Column(db.String(200), nullable=True) # Путь к изображению rental_date = db.Column(db.DateTime, nullable=False, default=datetime.now(timezone.utc), info={'help_text': 'Введите дату аренды', 'verbose_name': 'Дата аренды'}) return_date = db.Column(db.DateTime, nullable=False, default=datetime.now(timezone.utc), info={'help_text': 'Введите дату возврата авто', 'verbose_name': 'Дата возврата авто'}) CATEGORY_CHOICES = [ ('', 'Выберите категорию'), ('Долгосрочная', 'Долгосрочная'), ('Краткосрочная', 'Краткосрочная'), ] rental_category = db.Column(db.String(50), nullable=False, info={'verbose_name': 'Категория'}) # краткосрочная или долгосрочная rental_duration = db.Column(db.Integer, nullable=False, info={'help_text': 'Введите длительность аренды', 'verbose_name': 'Длительность аренды'}) # в днях rental_cost = db.Column(db.Float, nullable=False, info={'help_text': 'Введите стоимость аренды', 'verbose_name': 'Стоимость аренды'}) def __repr__(self): return f'<Rental {self.renter_name}, {self.bike_model}>'
Пояснения по запуску программы
Подробная инструкция по работе с веб-приложением
- Скачать и установить интерпретатор 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 то необходимо зайти в настройки, выбрать данный проект FlaskRentalCar и выбрать интерпретатор. При необходимости переустановить библиотеки: 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. Вы увидите следующее: клавиатуру с двумя кнопками.
- Выбираете одну из команд: Добавить аренду или Показать аренды.
- Первая команда позволяет добавлять аренду автомобиля, а вторая выводит список всех аренд.
- Запускаете веб-приложение. Добавленная вами аренда появится на странице – rentals.html .
admin