Аналог Яндекс-Афиша

Сайт содержит интерактивную карту Москвы, на которой будут все известные ему виды активного отдыха с подробными описаниями и комментариями.

Демо-версия сайта

Запуск

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

Скачайте код с GitHub. Установите зависимости:

pip install -r requirements.txt

Создайте базу данных SQLite

python manage.py migrate

Запустите разработческий сервер

python3 manage.py runserver

Переменные окружения

Часть настроек проекта берётся из переменных окружения. Чтобы их определить, создайте файл .env рядом с manage.py и запишите туда данные в таком формате: ПЕРЕМЕННАЯ=значение.

Доступны 3 переменные:

  • DEBUG — дебаг-режим. Поставьте True, чтобы увидеть отладочную информацию в случае ошибки.
  • SECRET_KEY — секретный ключ проекта
  • DATABASE_FILEPATH — полный путь к файлу базы данных SQLite, например: /home/user/schoolbase.sqlite3
  • ALLOWED_HOSTS — см документацию Django
  • STATIC_ROOT — полный путь к статике например: /home/user/static
  • MEDIA_ROOT — полный путь к медаифайлам например: /home/user/media
  • SESSION_COOKIE_SECURE — см документацию Django
  • CSRF_COOKIE_SECURE — см документацию Django

Суперпользователь

Создайте суперпользователя для доступа в административный интерфейс:

python manage.py createsuperuser

Загрузка данных

Чтобы загрузить тестовые данные воспользуйтесь пользовательской management-командой load_place:

python manage.py load_place "{url-адрес JSON-файла}"

Формат принимаемых входных данных:

    "title": "Антикафе Bizone",
    "imgs": [
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/1f09226ae0edf23d20708b4fcc498ffd.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/6e1c15fd7723e04e73985486c441e061.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/be067a44fb19342c562e9ffd815c4215.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/f6148bf3acf5328347f2762a1a674620.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/b896253e3b4f092cff47a02885450b5c.jpg",
        "https://raw.githubusercontent.com/devmanorg/where-to-go-places/master/media/605da4a5bc8fd9a748526bef3b02120f.jpg"
    ],
    "description_short": "Настольные и компьютерные игры, виртуальная реальность и насыщенная программа мероприятий — новое антикафе Bizone предлагает два уровня удовольствий для вашего уединённого отдыха или радостных встреч с родными, друзьями, коллегами.",
    "description_long": "<p>Рядом со станцией метро «Войковская» открылось антикафе Bizone, в котором создание качественного отдыха стало делом жизни для всей команды. Создатели разделили пространство на две зоны, одна из которых доступна для всех посетителей, вторая — только для совершеннолетних гостей.</p><p>В Bizone вы платите исключительно за время посещения. В стоимость уже включены напитки, сладкие угощения, библиотека комиксов, большая коллекция популярных настольных и видеоигр. Также вы можете арендовать ВИП-зал для большой компании и погрузиться в мир виртуальной реальности с помощью специальных очков от топового производителя.</p><p>В течение недели организаторы проводят разнообразные встречи для меломанов и киноманов. Также можно присоединиться к английскому разговорному клубу или посетить образовательные лекции и мастер-классы. Летом организаторы запускают марафон настольных игр. Каждый день единомышленники собираются, чтобы порубиться в «Мафию», «Имаджинариум», Codenames, «Манчкин», Ticket to ride, «БЭНГ!» или «Колонизаторов». Точное расписание игр ищите в группе антикафе <a class=\"external-link\" href=\"https://vk.com/anticafebizone\" target=\"_blank\">«ВКонтакте»</a>.</p><p>Узнать больше об антикафе Bizone и забронировать стол вы можете <a class=\"external-link\" href=\"http://vbizone.ru/\" target=\"_blank\">на сайте</a> и <a class=\"external-link\" href=\"https://www.instagram.com/anticafe.bi.zone/\" target=\"_blank\">в Instagram</a>.</p>",
    "coordinates": {
        "lng": "37.50169",
        "lat": "55.816591"
    }
}

Пример команды для загрузки данных

python manage.py load_place "https://raw.githubusercontent.com/pszhuchkov/where_to_go/master/sample.json"

Запуск сервера на локальной машине

python manage.py runserver

Цели проекта

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