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.
- Jak? zainstalować i uruchomić framework django na smarthost.pl - 1 czerwca, 2023