Перейти к содержимому

Как загрузить django сайт на beget

  • автор:

Установка и настрока Django проекта на хостинге Beget

Мой сайт работает на хостинге Beget и написан с ипользованием Python и фреймворка Django. Бегет хорошо подходит для размещения небольших проектов как этот. В этой статье раскажу как хостить Django-проект на Бегете.

Для начала создадим сайт в панели администратора

  1. Создадим домен и прекрепим для него новую папку с каким-нибудь именем
  2. В разделе CMS, главного меню хостинга, выберем Django и установим каркас приложения

После установки фреймворка в конреновой директории можно найти файл README.txt следующего содержания

Django установленный системой автоматической установки cms LTD BEGET
Действия описанные ниже необходимо выполнять в docker-окружении выполнив команду ниже ssh localhost -p222
для установки дополнительных модулей используйте pip
сам Django располагается в папке
/home/u/username/site-directory/public_html/venv/ для начала надо переключиться на текущий virtualenv
заходим в папку с проектом
cd /home/u/username/site-directory/public_html
source venv/bin/activate

проверяем правильно ли определился путь до pip:
which pip
/home/u/username/site-directory/public_html/venv/bin/pip

теперь мы можем пользоваться pip’ом для установки модулей не указывая полного пути до исполняемого файла:
pip install
где имя модуля который мы хотим установить
Для перезапуска passenger в папке проекта достаточно выполнить команду touch на пустом файле restart.txt
pwd
/home/u/username/site-directory/public_html/HelloDjango/HelloDjango/tmp
touch restart.txt

Создание репозитория

Создайте репозиторий на любом из сервесов: Github, Bitbucket или Gitlab. Не рекомендуется хранить данные для подключения к базе данных в репозитории. Но если вы решили так сделать, не забудьте создать приватный репозиторий.
В личного кабинета в сайдбаре нужно включить SSH-доступ.

Подключимся к хостингу по ssh:

Пароль для доступа такой же как и от личного кабинета

Зайдем в docker-контейнер:

ssh localhost -p 222

Пароль для доступа такой же как и от личного кабинета

Инициализируем репозиторий в директории /public_html:

git commit -m «Initial commit»

Добавим ссылку на внешний репозиторий:

git add remotename url

Проверим, что репозиторий добавлен:

origin https://github.com/username/repository (fetch)

origin https://github.com/username/repository (push)

Привяжем ветку master к внешней ветке и отправим файлы в репозиторий:

git branch —set-upstream-to=origin/master

Теперь можно разрабатывать сайт на локальной машине. Когда нужно будет перенести сайт на сервер нужно выполнить одну команду и поправить конфигурационные файлы, если потребуется

Дополнительные действия

Для раздачи статики нужно сделать относительные ссылки:

В корневой директории

ln -s public_html public

На директорию static в public_html

rm -rf static
ln -s HelloDjango/static static

Создать сайт на Django

Установить Django на своём хосте довольно просто — можете изучить инструкцию ниже.

Для установки Django на хостинг потребуется больше манипуляций. Как это сделать на хостинге Beget вы можете узнать из моей статьи

На многих современных хостингах процедура будет похожей.

Установка Django

Первым делом советую обновить pip

python3 -m pip install —upgrade pip

Затем непосредственно установить Django

python3 -m pip install django

python3 -m django —version

python3 -m pip list

Package Version —————— ——— asgiref 3.3.4 Django 3.2.4 pip 21.1.2 pytz 2021.1 setuptools 39.0.1 sqlparse 0.4.1 typing-extensions 3.10.0.0

Команды Django

Список комад Django можно получить выполнив

python3 -m django help

Type ‘python -m django help ‘ for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).

В каждом проекте (project) обычно используется одно или несколько приложений (application)

Когда все приложения и конфигурации объединены они составляют веб-приложение.

applications + configurations = web application

Создаём первое приложение

python3 manage.py startapp first_app

Появится директория first_app в которой будут следующие файлы

Переходим в директорию Project_Name/Project_Name

Редактируем файл Project_Name/Project_Name/settings.py

Нужно добавить в список установленных приложений наше новое приложение first_app

INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘first_app’, ]

python3 manage.py runserver

Если перезапуск осуществляется с помощью скрипта выполняем (насколько я знаю, это актуально для хостингов beget и dreamhost)

(docker) andreyolegovich@server:~/eth1.ru [0] $ touch tmp/restart.txt

Создаём view и связываем с url

Процесс состоит минимум из трёх действий

  1. В директории с приложением, например Project_Name/first_app в файле views.py нужно создать функцию, которая будет слушать url
  2. В главной директории проекта, например Project_Name/Project_Name в файле urls.py нужно импортировать эту функцию
  3. По-прежнему в urls.py нужно добавить сочетание url и функции в urlpatterns

Пример: Переходим в директорию с приложением Project_Name/first_app и редактируем views.py , чтобы создать наш первый view.

Каждый view должен возвращать какой-то HttpResponse объект.

Добавляем следущий код в файл Project_Name/first_app/views.py:

from django.http import HttpResponse def about (request): return HttpResponse(«About Us!»)

Теперь нужно привязать этот view к какой-то url

Добавляем следующий код в файл urls.py

from first_app.views import about urlpatterns = [ path( » , ‘about’) ]

В urlpatterns можно указывать url разными способами

urlpatterns = [ path( » , welcome) , # Главная страница сайта path( ‘welcome.html’ , welcome) , # url с расширением .html path( ‘admin/’ , admin.site.urls) , # url со слешем на конце path( ‘date’ , date) # url без расширения ]

Обратите внимание на welcome — одна функция может обслуживать несколько url

Добавляем домен, на котором Вы разворачиваете сайт в ALLOWED_HOSTS файла (из проекта) settings.py

__pycache__

connection to first_app by
INSTALLED_APPS = [‘first_app’, ]
connection to templates by
TEMPLATES_DIR = os.path.join( BASE_DIR , » templates «)

urls.py

Работа с Django на хостинге Beget

Итак первым делом нужно в паели веб-сервера включить доступ по ssh для вашего аккаунта.

Далее подключаемся к нашему хостингу из терминала

ssh tabari@tabari.beget.tech

попав на сервер переходим в docker — окружение

ssh localhost -p222

Прежде чем идти дальше, предполагается, что у вас уже установлен Python на хостинге. Как устанавливать цитировать руководство не буду, просто оставлю ссылку на него, где все подробно расписано. В моем случае, нужно было установить Python 3, что я и сделал.

На сервере уже по умолчанию установлен git, поэтому переходим в папку Django приложения, обновляем проект командой, разумеется предварительно нужно инициировать репозиторий git

git pull
~/.local/bin/python3.5 ./manage.py migrate

А также копируем статику:

~/.local/bin/python3.5 ./manage.py collectstatic

После завершения настройки окружения необходимо создать каталог tmp, где будет хранится файл restart.txt:

(docker) django17@quasar:~/django17.bget.ru [0] $ mkdir tmp; touch tmp/restart.txt

Пересоздание tmp/restart.txt применяет новые изменения в проекте.

На этом пожалуй все, Очень качественный и недорогой хостинг, всем советую!

Django

Высокоуровневый веб-фреймворк на языке Python, который облегчает и ускоряет разработку веб-приложений.

Создать VPS

Django– это высокоуровневый веб-фреймворк, разработанный на языке программирования Python. Он предоставляет мощные инструменты для разработки веб-приложений, обеспечивая эффективную обработку URL-адресов, управление базами данных, шаблонами Django, а также формами и аутентификацией пользователей.

Django имеет модульную архитектуру, благодаря которой есть возможность использовать только необходимые компоненты. Фреймворк Django также обладает богатым набором инструментов и библиотек для решения повседневных задач, таких как работа с сессиями, кэширование, администрирование и безопасность. Благодаря своей гибкости и расширяемости Django является одним из самых популярных веб-фреймворков в мире и широко используется для создания различных типов веб-приложений.

Django от Бегета – это готовый к работе дистрибутив с установленным Django, развернутым стандартным проектом и установленным на домен SSL-сертификатом.

Состав приложения

  • Ubuntu 22.04
  • Python 3.10.6
  • Django Latest

Установка Django

Для установки Python-фреймворка Django вместе с созданием сервера потребуется указать следующие дополнительные параметры:

  • Доменное имя, по которому будет доступен Django. Вы можете как выбрать свой собственный домен, так и зарегистрировать новый. Помимо этого вы можете воспользоваться бесплатным доменом в зоне .beget.app. На указанный домен будет установлен бесплатный SSL-сертификат.
  • Логин администратора. Он будет использован для входа в панель администратора Django.
  • E-mail администратора. Он будет использован для входа в административную панель Django и получения уведомлений.
  • Пароль администратора. Он будет использован для входа в административную панель Django.
  • Имя Django-проекта. Имя проекта, который будет создан при разворачивании Django.

Работа с Django

Для проверки корректности развертывания Django вы можете перейти по ссылке вида https://my_domain.beget.app (где my_domain.beget.app – это ранее выбранный домен для установки) и увидеть страницу, сообщающую об удачной установке Django.

Файлы проекта Django расположены в home-директории пользователя django . Для дальнейшей работы с Django, будь то настройка проекта с нуля или импорт готового проекта, вам необходимо:

  • Подключиться к серверу по SSH: ssh root@server_ip .
  • Переключить с пользователя root на пользователя django командой sudo su — django .
  • Перейти в директорию проекта командой cd myproject , где myproject – название проекта, которое вы указали при установке.
  • Активировать виртуальное окружение командой source venv/bin/activate .

После выполнения вышеописанных действий вы можете начинать работать с проектом Django. Желаем удачной разработки с Django!

FAQ

Где найти информацию о проекте Django?

Информацию о проекте, которую вы указывали при установке, вы можете найти в панели управления, нажав на кнопку “Информация о Django”.

Где расположены файлы проекта Django?

Файлы проекта расположены в home-директории пользователя Django: /home/django/myproject , где myproject – название проекта, которое вы указали при установке.

Возможно ли развернуть дополнительные проекты?

Да, вы можете развернуть дополнительные проекты стандартными средствами Django, но информация в панели управления не обновится и в ней будут отображаться данные от самого первого проекта.

Django

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *