Проект готов. Ему не хватает только одного: посетителей. Ваше новое задание — подготовиться к их визиту.
Зарегистрируйтесь на своём сайте, опубликуйте в своей ленте несколько постов: посетители должны увидеть наполненный сайт. В постах может быть что угодно: мемы, цитаты Конфуция об интернете, трагикомический триллер «как я написал этот проект», избранные места из переписки с ревьюерами — любая тема хороша. Устройте праздник сокурсникам и знакомым, пусть им будет интересно.
Питон — он всюду: pythonanywhere.com
Один из способов выложить сайт в интернет — воспользоваться услугами сервиса pythonanywhere.com: там можно получить бесплатное место на диске и удобные настройки для развёртывания проекта. Для коммерческой эксплуатации проекта предоставляемых ресурсов не хватит, и доменное имя будет не самое красивое — но для учебных целей этот сервис — то, что надо.Процесс несложный, приступим.
Регистрация и выбор имени для домена
Зарегистрируйтесь на сайте и подтвердите адрес электронной почты.Будьте предусмотрительны при выборе имени пользователя (логина): в бесплатном аккаунте URL вашего проекта будет таким: www.<username>.pythonanywhere.com. Для наших примеров мы выбрали имя paktikum.
После регистрации вам предложат ознакомительную прогулку по сервису. Если есть время — соглашайтесь, но это не обязательно.
Настройка и запуск пустого Django-проекта
После регистрации и авторизации вам будет доступно 512 Мб дискового пространства для размещения проекта. Этого более чем достаточно для Yatube.Поехали: на странице Dashboard щёлкните по кнопке Open Web tab:
Дальше: Web —> Add a new app:
Your web app’s domain name … Предложение улучшить аккаунт решительно отвергаем, жмём кнопку Next.
Select a Python Web framework —> DjangoНаш выбор — Django!
Select a Python version —> Python 3.8 (Django 2.2.7)
Выберите Python 3.8.
Project Name —> yatube
В поле Project Name укажите yatube. Это имя используется в настройках, так что лучше дать имя, соответствующее названию Django-проекта.
Готово! Перейдите по URL своего проекта <имя пользователя>.pythonanywhere.com: там будет запущен пустой проект Джанго.
Разворачиваем проект на сервере
Подготовьте проект к публикации: в список ALLOWED_HOSTS
в файле hw05_final/yatube/settings.py
добавьте два варианта адреса вашего сайта (вместо ваш_логин
должно быть указано имя вашего аккаунта на pythonanywhere.com).
ALLOWED_HOSTS = [
'www.ваш_логин.pythonanywhere.com',
'ваш_логин.pythonanywhere.com',
]
Эта настройка позволит работать вашему проекту не только на локальной машине, но и на вашем домене.
Следующий этап — залить файлы проекта на сервер.В меню сайта pythonanywhere.com перейдите по ссылке Files. Откроется страница с инструментами для добавления, удаления и редактирования файлов на вашем сервере.
Загружать файлы нужно в домашнюю директорию на сервере, она откроется при входе на страницу Files.
Можно создавать директорию за директорией и поштучно размещать в них файл за файлом. Но лучше создать на локальной машине zip-архив проекта через любой архиватор, который у вас установлен.
Другой вариант — создать zip-архив через bash-терминал:
# По этой команде будет создан zip-архив с названием исходной директории
zip -r hw05_final hw05_final
Перед архивацией удалите из директории проекта папку venv — на сервере она не понадобится. Если вы забудете её удалить — ничего страшного не случится, просто загрузка и разархивация продлятся чуть дольше.
Теперь весь проект можно залить на сервер одним файлом.После загрузки должно получиться так:
Для распаковки архива на сервере графический интерфейс не предусмотрен. Пройдёмте в раздел Consoles: там живут терминалы. Наш выбор: Consoles —> Other —> Bash.
После запуска Bash перед вами окажется окно терминала:
Самое время вспомнить полезные команды:
ls
— посмотреть файлыcd <имя папки>
— перейти в директорию <имя папки>
cd ..
подняться на директорию вышеunzip hw05_final.zip
— разархивировать архив hw05_final
Разархивируйте проект:
После этого перейдите в папку hw05_final, содержащую файл requirements.txt, и установите зависимости проекта. Если вы по несчастной случайности загрузили на сервер виртуальное окружение — активировать его не надо: на сервере будет лишь один проект.
pip3 install -r requirements.txt --user
pip3
указывает явным образом, что используется python3.--user
для установки в вашем домашнем каталоге, что не требует никаких специальных привилегий. Без этого будет проблема с правами доступа.
Некоторые зависимости будут ругаться на уже установленные. Это нормально и на работоспособность не повлияет.
Последний шаг — на странице Web в разделе WSGI configuration file:
Необходимо изменить конфигурационный файл <ваш_URL>_wsgi.py: в нём нужно указать правильное имя папки с кодом проекта: project_home = ‘/home/praktikum/hw05_final/yatube/’
После этого перезагрузите сервер — нажмите зелёную кнопку Reload <ваш_URL>
Ваш проект Yatube доступен в Интернете!