Jak? zainstalować i uruchomić framework django na smarthost.pl

Wprowadzenie – podstawowe informacje które użyjemy w trakcie instalacji.

  • Konto na smarthost.pl ( najlepiej wersja nvme-litespeed )
  • Link partnerski na zakup konta ( zakup planu hostingowego z 20% rabatem )
  • Django – wersja 4.2.1
  • Python – wersja 3.9.16
  • Baza danych – sqlite3
  • Dostęp ssh

Na potrzeby instalacji dane konta

  • Nazwa usera/konta – janek
  • Nazwa domeny – djdomena.pl ( dodana w cpanel z certyfikatem ssl )
  • Nazwa katalogu w którym będą aplikacje django – djapp

Zaczynamy od zalogowania się do cpanel i szukamy Oprogramowanie / Setup Python App

Wybieramy wersję pythona, podajemy ścieżkę do głównego katalogu aplikacji ( djapp ) oraz wybieramy naszą domenę lub subdomenę.

Wybraliśmy pythona 3.9

/home/janek/public_html/djdomena.pl/djapp

Domena : djdomena.pl

Klikamy na CREATE

Zostanie utworzone wirtualne środowisko pythona i nasz katalog djapp.

Ważne! zostanie wyświetlony komunikat jak mamy się dostać do virtualenv.

Najlepiej skopiować i zapisać w bezpiecznym miejscu.

Logujemy się przez ssh i korzystamy z polecenia source.

source /home/janek/virtualenv/public_html/djdomena.pl/djapp/3.9/bin/activate && cd /home/janek/public_html/djdomena.pl/djapp

Widok po wykonaniu polecenia

((djapp:3.9)) {janek@serwer:djapp}$

Wylogowanie z virtualenv : polecenie deactivate

Instalujemy django ( jeśli konkretna wersja to django==4.2.1 ) poleceniem pip install django

Po instalacji wynik na konsoli

((djapp:3.9)) {janek@serwer:djapp}$ pip install django
Collecting django 
Using cached Django-4.2.1-py3-none-any.whl (8.0 MB)
Collecting asgiref<4,>=3.6.0 (from django)
Using cached asgiref-3.6.0-py3-none-any.whl (23 kB)
Collecting sqlparse>=0.3.1 (from django)
Using cached sqlparse-0.4.4-py3-none-any.whl (41 kB)
Installing collected packages: sqlparse, asgiref, django
Successfully installed asgiref-3.6.0 django-4.2.1 sqlparse-0.4.4

Instalujemy także whitenoise

pip install whitenoise

Bez tego pakietu dostęp do panelu django-admin nie będzie wykorzystywał styli CSS.

Informacyjnie w naszym katalogu

/home/janek/public_html/djdomena.pl/djapp

powinny się znajdować katalogi : public, tmp oraz pliki manage.py i passenger_wsgi.py

Tworzymy naszą pierwszą app-kę poleceniem

django-admin startproject mysite .

Następnie w pierwszej kolejności zajmiemy się plikiem passenger_wsgi.py

Musisz go dostosować/edytować poniżej kod

import imp
import os
import sys

sys.path.insert(0, os.path.dirname(__file__))
wsgi = imp.load_source('wsgi', 'mysite/wsgi.py')
application = wsgi.application

Najważniejsze to linia

wsgi = imp.load_source('wsgi', 'mysite/wsgi.py')

mysite to nasza app-ka którą dodaliśmy krok wcześniej

Następnie edytujemy mysite/settings.py

Będziemy dodawać lub edytować

ALLOWED_HOSTS = ['djdomena.pl','www.djdomena.pl']

Konfiguracja whitenoise w sekcji MIDDLEWARE

"whitenoise.middleware.WhiteNoiseMiddleware",

Tak powinien wyglądać whitenoise na 2 pozycji

MIDDLEWARE = [ 
 'django.middleware.security.SecurityMiddleware',
 "whitenoise.middleware.WhiteNoiseMiddleware",
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware', 
]

LANGUAGE_CODE = 'pl'

TIME_ZONE = 'Europe/Warsaw'

STATIC_ROOT = BASE_DIR / 'static'

Uruchamiamy naszą app-kę do pracy

Musimy być w katalogu djapp

((djapp:3.9)) {janek@serwer:djapp}$ python manage.py migrate

Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying admin.0003_logentry_add_action_flag_choices… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying auth.0009_alter_user_last_name_max_length… OK
Applying auth.0010_alter_group_name_max_length… OK
Applying auth.0011_update_proxy_permissions… OK
Applying auth.0012_alter_user_first_name_max_length… OK
Applying sessions.0001_initial… OK

Następne polecenie to dodanie styli css do panelu django.

python manage.py collectstatic

((djapp:3.9)) {janek@serwer:djapp}$ python manage.py collectstatic
125 static files copied to '/home/janek/public_html/djdomena.pl/djapp/static'.

Dodajemy użytkownika poleceniem

python manage.py createsuperuser

((djapp:3.9)) {janek@serwer:djapp}$ python manage.py createsuperuser
Nazwa użytkownika (leave blank to use 'janek'): janek
Adres e-mail: janek@djdomena.pl
Password:
Password (again):
Superuser created successfully.
((djapp:3.9)) {janek@serwer:djapp}$

podczas wpisywania hasła nic się nie pokazuje na konsoli.

Jesteśmy już prawie na samym końcu!

Restartowanie aplikacji możemy wykonać na 2 sposoby : w cpanel klikając na restart

albo tworzymy plik restart.txt i serwer przeładuje się

touch tmp/restart.txt

Sprawdzamy naszą stronę powinien być podstawowy szablon taki jak ten

Możemy także się zalogować do panelu adres to nazwa naszej domeny + admin/ ( Przykład https://djdomena/admin/ )

Dotarliśmy do końca zostało jeszcze kilka podpowiedzi ale to już w następnym artykule.

Miłej zabawy z django.

Zbigniew Czechowski
Latest posts by Zbigniew Czechowski (see all)

Dodaj komentarz