Пилотный проект будущего сайта о самых интересных местах в Москве. Авторский проект некого Артёма, с некоторыми доработками.
Наглядно ознакомиться с проектом можно здесь, а тут располагается панель администратора. Логин для входа с правом просмотра - 12345user, пароль - 12345password.
Рекомендуется установить python 3.10. Затем используйте pip (или pip3, если есть конфликт с python2) для установки зависимостей:
pip install -r requirements.txt
или
pip3 install -r requirements.txt
Рекомендуется использовать venv для изоляции проекта.
Все представленные ниже ключи и параметры имеют значения по умолчанию.
Сохраните ключи/токены/параметры в .env файл в директорию проекта с соблюдением типа данных в следующем формате:
SECRET_KEY=вместо этого текста вставьте ключ; по умолчанию - get_random_secret_key()
DEBUG=вставьте значение True или False, в зависимости от того, требуется ли вам режим отладки Django; по умолчанию - False
ALLOWED_HOSTS=по умолчанию - []
STATICFILES_DIRS=вставьте список путей к статике; по умолчанию - [Path(f'{BASE_DIR}/static')]
TEMPLATES_DIRS=вставьте список путей к шаблонам; по умолчанию - [Path(f'{BASE_DIR}/templates')]
DATABASE_ENGINE=вставьте тип используемой БД; по умолчанию - 'django.db.backends.sqlite3'
DATEBASE_NAME=вставьте имя БД, помещенной в базовую директорию проекта; по умолчанию - 'db.sqlite3'
STATIC_ROOT=по умолчанию - ''
STATIC_URL=по умолчанию - '/static/'
MEDIA_ROOT=по умолчанию - Path(f'{BASE_DIR}/media'))
MEDIA_URL=по умолчанию - '/media/'
Находясь в консоли в директории проекта, где располагается файл manage.py, выполните следующие команды:
python3 manage.py migrate
- данная команда подготавливает базу данных к запуску сайта
python3 manage.py createsuperuser
- эта команда помогает создать суперпользователя для дальнейшего доступа к панели администратора
python3 manage.py runserver
- данная команда запускает сайт на локальном сервере
После успешного запуска вы сможете увидеть сайт по адресу http://127.0.0.1:8000. По адресу http://127.0.0.1:8000/admin/ вы найдёте панель администратора, которая позволяет добавлять новые локации с описаниями, выгружать и сортировать фотографии. Помните, что после внесения изменений необходимо сохранять изменения кнопкой "SAVE" в нижнем правом углу страниц Place и Image.
Кроме использования админки есть и другой способ добавления локаций, когда информация о каждой локации предварительно сохраняется в отдельный json-файл в следующем формате:
{
"title": "Экскурсионный проект «Крыши24.рф»",
"imgs": [
"https://kudago.com/media/images/place/d0/f6/d0f665a80d1d8d110826ba797569df02.jpg",
"https://kudago.com/media/images/place/66/23/6623e6c8e93727c9b0bb198972d9e9fa.jpg",
"https://kudago.com/media/images/place/64/82/64827b20010de8430bfc4fb14e786c19.jpg",
],
"description_short": "Хотите увидеть Москву с высоты птичьего полёта?",
"description_long": "<p>Проект «Крыши24.рф» проводит экскурсии ...</p>",
"coordinates": {
"lat": 55.753676,
"lng": 37.64
}
}Для того, чтобы подгрузить информацию в базу данных, в терминале, находясь в директории проекта, используйте следующую команду:
python3 manage.py load_place -j введите/путь/до/отдельной/папки,/содержащей/исключительно/json-файлы/локаций
Если изображения у вас уже скачаны, вторым аргументом -i можете указать папку, содержащую их:
python3 manage.py load_place -j путь -i введите/путь/до/отдельной/папки,/содержащей/исключительно/изображения/локаций
- Django — сервер для разработки, панель администратора, шаблонизация
- Leaflet — отрисовка карты
- loglevel для логгирования
- Bootstrap — CSS библиотека
- Vue.js — реактивные шаблоны на фронтенде
Код написан в учебных целях — это урок в курсе по Python и веб-разработке на сайте Devman.
Тестовые данные взяты с сайта KudaGo.
