/where_to_go

Проект "Куда пойти"

Primary LanguageJavaScript

Static Badge Static Badge

Сайт "Куда пойти"

scrinshot

Описание проекта

Сервис для отображения локаций на карте, а также добавления описания и фотографий к ним.

Основные возможности проекта

  • Создание, удаление и редактирование локаций на карте с использованием интерфейса администратора;
  • Добавление картинок к локациям;
  • Возможность выбора очередности показа картинок.

Как запустить проект:

Для запуска проекта на локальной машине у вас должны быть установлены Python, git.

Клонируйте репозиторий:

git clone git@github.com:nucluster/where_to_go.git

Измените свою текущую рабочую директорию:

cd where_to_go

Создайте и активируйте виртуальное окружение, установите зависимости:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Создайте .env файл следующего содержания:

DEBUG=True
SECRET_KEY=[ваш_уникальный_секретный_ключ]
ALLOWED_HOSTS=127.0.0.1,localhost

DEBUG: Логическое значение, которое включает/выключает режим отладки. Если ваше приложение выдает исключение, когда DEBUG имеет значение True, Django отобразит подробную обратную трассировку, включая множество метаданных о вашей среде, например все определенные на данный момент настройки Django (из settings.py).

SECRET_KEY: Секретный ключ для конкретной установки Django. Он используется для обеспечения криптографической подписи и должен быть установлен на уникальное, непредсказуемое значение.

ALLOWED_HOSTS: Список строк, представляющих имена хостов/доменов, которые может обслуживать этот сайт Django. Это мера безопасности для предотвращения атак по заголовку HTTP-хоста, которые возможны даже при многих, казалось бы, безопасных конфигурациях веб-сервера.

Примените миграции:

python manage.py migrate

Создайте суперпользователя Django:

python manage.py createsuperuser

Для создания тестового суперпользователя можно воспользоваться командой:

python manage.py superuser

Будет создан суперпользователь login: admin, password: 12345.

Формат файла локации:

{
    "title": "Экскурсионная компания «Легенды Москвы»",
    "imgs": [
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/4f793576c79c1cbe68b73800ae06f06f.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/7a7631bab8af3e340993a6fb1ded3e73.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/a55cbc706d764c1764dfccf832d50541.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/65153b5c595345713f812d1329457b54.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/0a79676b3d5e3b394717b4bf2e610a57.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/1e27f507cb72e76b604adbe5e7b5f315.jpg"
    ],
    "description_short": "Неважно, живёте ли вы в Москве всю жизнь или впервые оказались в столице, составить ёмкий, познавательный и впечатляющий маршрут по городу — творческая и непростая задача. И её с удовольствием берёт на себя экскурсионная компания «Легенды Москвы»!",
    "description_long": "<p>Экскурсия от компании «Легенды Москвы» — простой, удобный и приятный способ познакомиться с городом или освежить свои чувства к нему. Что выберете вы — классическую или необычную экскурсию, пешую прогулку или путешествие по городу на автобусе? Любые варианты можно скомбинировать в уникальный маршрут и создать собственную индивидуальную экскурсионную программу.</p><p>Компания «Легенды Москвы» сотрудничает с аккредитованными экскурсоводами и тщательно следит за качеством экскурсий и сервиса. Автобусные экскурсии проводятся на комфортабельном современном транспорте. Для вашего удобства вы можете заранее забронировать конкретное место в автобусе — это делает посадку организованной и понятной.</p><p>По любым вопросам вы можете круглосуточно обратиться по телефонам горячей линии.</p><p>Подробности узнавайте <a class=\"external-link\" href=\"https://moscowlegends.ru \" target=\"_blank\">на сайте</a>. За обновлениями удобно следить <a class=\"external-link\" href=\"https://vk.com/legends_of_moscow \" target=\"_blank\">«ВКонтакте»</a>, <a class=\"external-link\" href=\"https://www.facebook.com/legendsofmoscow?ref=bookmarks \" target=\"_blank\">в Facebook</a>.</p>",
    "coordinates": {
        "lng": "37.64912239999976",
        "lat": "55.77754550000014"
    }
}

Для загрузки данных из json-файла по ссылке:

python manage.py load_place [ссылка]

Фотографии локации будут загружены на локальный компьютер.

Для загрузки данных из json-файлов в БД:

python manage.py load_places [путь к папке с файлами локаций]

Фотографии локаций будут подгружаться по ссылке.

Для загрузки и сохранении фотографий на локальный компьютер:

python manage.py dwnld_images

Файлы фотографий будут сохранены в папку media с нумерацией порядкового номера фотографии локации и названием локации на транслите. Пример:

media/places/ostankinskaya-telebashnya_3.jpg

Запуск:

python manage.py runserver

Работающий сайт доступен по адресу:

https://jasgzym9t.eu.pythonanywhere.com/

Цели проекта

Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.