Учебный проект веб-приложения Flask
Разработать сайт по продаже автомобилей. Дать пользователям возможность размещать и просматривать объявления.
Пользовательский функционал:
- Можно просматривать объявления о продаже, смотреть фото, описание и технические характеристики каждого объявления. (прим. для того чтоб связаться с владельцем или увидеть номер - нужно войти под своим именем)
- Пользователь может зарегистрироваться и войти/выйти.
- Зарегистрированный пользователь может создать и выложить свое объяление, а так же удалить его или отредактировать.
- Есть возможность написать владельцу и общаться с ним в личных сообщениях.
- Фильтрация объявлений по марке, модели и стоимости.
Админский функционал:
- Возможность удалить объявление любого пользователя.
- На странице, доступной только админам просматривать текущую статистику(количество активных/ неактивных объявлений, список всех пользователей и их объявления)
Первое что было сделано - это написание парсера load_link.py, который собирает ссылки объявлений на заданном количестве страниц, с них я получил все данные кроме номера, с помощью библиотек selenium, pytesseract был распознан номер и все данные были записаны в 4 csv-файла и БД(PostgresSQL)
Можно загрузить исходный код в виде Zip архива или клонировать этот репозиторий.
- Создать свое виртуальное окружение(обязательно)
- Загрузить все зависимости из requirements.txt
- Установить и настроить Tesseract
- Установить и изменить конфигурации ChromeDriver
- В папке webapp создать файл config.py
from datetime import timedelta
from sqlalchemy import create_engine
# Количество объявлений на странице
AUTO_PER_PAGE = 10
# Количество сообщений на странице
MESSAGES_PER_PAGE = 10
SECRET_KEY = "Ваш серетный ключ"
SQLALCHEMY_DATABASE_URI = "Ваш путь к базе данных"
engine = create_engine(SQLALCHEMY_DATABASE_URI)
# Сайт запомнинает пользователя на 5 дней
REMEMBER_COOKIE_DURATION = timedelta(days=5)
- Для запуска Веб-приложения в виртуальном окружении запускаем
run.bat
Проект не завершен
Если возникли сложности или замечания, создайте
обсуждение
в этом репозитории или напишите
на электронную почту frederr.45@gmail.com