Deploy Python aplikacije ( Django )
Ukoliko ste zakupili linux hosting uslugu koja podržava hostanje Python aplikacija ovdje možete pročitati upute kako napraviti deploy Python aplikacije.
U cPanelu potražite i uđite u opciju Setup Python App te kliknite na gumb Create application te popunite sljedeća polja:
- Python version – Odaberite verziju Pythona koju želite koristiti – dostupne su verzije od 2.7.18 do 3.9.12.
- Application root – Unesite direktorij u koji treba instalirati Python aplikaciju. Ovo je put relativan u odnosu na korijenski direktorij web hostinga i kreirat će navedeni direktorij ako ne postoji.
- Application URL – Unesite adresu na kojoj bi se aplikacija trebala nalaziti. Ako bi aplikacija trebala biti dostupna izravno na vašoj domeni, ostavite polje praznim.
- Application startup file – Unesite naziv datoteke za pokretanje. To povezuje “Ulaznu točku aplikacije” ( Application Entry Point) sa samom aplikacijom.
- Application Entry Point – Unesite naziv varijable koja sadrži poslužitelj.
- Passenger log file – Ovo je path do mjesta gdje je zapisana Phusion Passenger log datoteka. -> Passenger log file You can define the path along with the filename ( npr. /home/VAS_CPANEL_USERNAME/logs/passenger.log)
- Environment variables – Ovdje se mogu dodati varijable okoline za instalaciju Pythona ako je potrebno.
Kada su sva polja popunjena po želji, pritisnite gumb CREATE ( “Kreiraj” ) za postavljanje aplikacije.
Nakon klika na gumb CREATE na vrhu će se kreirati polje u kojem piše naredba:
Enter to the virtual environment.To enter to virtual environment, run the command: source /home/…
S tom komandom ulazite u virtualno okruženje aplikacije.
Konfiguriranje Django projekta
Nakon što ste izradili Python aplikaciju u cPanelu, spremni ste izvršiti sljedeće zadatke u komandnom sučelju:
1. Instalirati Django.
2. Stvoriti i konfigurirati Django projekt.
3. Konfigurirati Passenger za rad s Django projektom.
Da biste to učinili, slijedite ove korake:
a) Prijavite se na svoj račun koristeći SSH pristup. Ako niste još kreirali svoj SSH ključ pratite upute u članku ssh osnove i uputi u članku Autentifikacija putem SSH ključa .
b) Aktivirajte virtualno okruženje pomoću naredbe za ulazak u virtualno okruženje aplikacije.
c) Instalirajte Django naredbom (primjer za instalaciju verzije 2.1.8.)
cd ~ pip install django==2.1.8
Provjerite verziju komandom:
django-admin --version
Za izradu Django projekta upišite sljedeću naredbu:
django-admin startproject myapp ~/myapp
Da biste stvorili direktorije za statičke projektne datoteke ( static project files ), upišite sljedeće naredbe:
mkdir -p ~/myapp/templates/static_pages mkdir ~/myapp/static_files mkdir ~/myapp/static_media
Pomoću uređivača teksta otvorite datoteku ~/myapp/myapp/settings.py , a zatim napravite sljedeće promjene:
Pronađite redak ALLOWED_HOSTS, a zatim ga promijenite na sljedeći način. Zamijenite example.com svojim nazivom domene: ALLOWED_HOSTS = ['example.com']
Pronađite blok TEMPLATES, a zatim ga modificirajte na sljedeći način:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
Pronađite redak STATIC_URL, a zatim dodajte sljedeće retke ispod njega:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static_files') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, "static_media")
Koristite uređivač teksta da biste otvorili datoteku ~/myapp/myapp/urls.py. Izbrišite sav postojeći tekst, a zatim kopirajte sljedeći tekst u datoteku:
from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static from django.conf.urls import url from django.views.generic.base import TemplateView urlpatterns = [ path('admin/', admin.site.urls), url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'), name='home'), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Koristite uređivač teksta da biste otvorili datoteku ~/myapp/passenger_wsgi.py. Izbrišite sav postojeći tekst, a zatim kopirajte sljedeći tekst u datoteku:
import os import sys import django.core.handlers.wsgi from django.core.wsgi import get_wsgi_application # Set up paths and environment variables sys.path.append(os.getcwd()) os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' # Set script name for the PATH_INFO fix below SCRIPT_NAME = os.getcwd() class PassengerPathInfoFix(object): """ Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it. """ def __init__(self, app): self.app = app def __call__(self, environ, start_response): from urllib.parse import unquote environ['SCRIPT_NAME'] = SCRIPT_NAME request_uri = unquote(environ['REQUEST_URI']) script_name = unquote(environ.get('SCRIPT_NAME', '')) offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0 environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0] return self.app(environ, start_response) # Set the application application = get_wsgi_application() application = PassengerPathInfoFix(application)
Koristite uređivač teksta za stvaranje osnovne datoteke index.html u direktoriju ~/myapp/templates/static_pages.
Datoteka može biti jednostavna poput tekstualne datoteke s natpisom Hello world.
Upišite sljedeću naredbu:
python ~/myapp/manage.py migrate
Postavite račun superkorisnika:
Upišite sljedeću naredbu:
python ~/myapp/manage.py createsuperuser
- Na upit USERNAME /Korisničko ime upišite korisničko ime administratora, a zatim pritisnite Enter.
- Za adresu e-pošte upišite adresu e-pošte administratora, a zatim pritisnite Enter.
- Na upit Lozinka upišite administratorsku lozinku, a zatim pritisnite Enter.
Upišite sljedeću naredbu za prikupljanje statičkih datoteka:
python ~/myapp/manage.py collectstatic
Ako budete upitani želite li prebrisati postojeće datoteke, upišite yes i zatim pritisnite Enter.
U cPanelu ponovno pokrenite Python aplikaciju:
Prijavite se na cPanel. U odjeljku SOFTWARE na početnom zaslonu cPanela kliknite Setup Python App. Pod WEB APPLICATIONS pronađite aplikaciju myapp, a zatim kliknite ikonu Restart .
Testirajte Django stranicu:
Upotrijebite svoj preglednik da biste otišli na http://www.example.com, gdje example.com predstavlja naziv vaše domene. Trebala bi se učitati datoteka index.html.
Upotrijebite svoj preglednik da biste otišli na http://www.example.com/admin, gdje example.com predstavlja naziv vaše domene. Trebali biste vidjeti stranicu za prijavu u administraciju Djanga. Za prijavu upotrijebite podatke za prijavu za superkorisnika koje ste ranije izradili.
Ako se web stranica ne pojavi u vašem pregledniku, pokušajte ručno pokrenuti datoteku passenger_wsgi.py. Da biste to učinili, upišite sljedeću naredbu:
python ~/myapp/passenger_wsgi.py
Ne bi trebalo biti “outputa” teksta u konzoli kada pokrenete ovu datoteku. Ako postoje pogreške, provjerite sintaksu u konfiguracijskim datotekama.
Sada kada imate podešen Django site, možete započeti razvijanje aplikacije.
Sljedeći resursi mogu pomoći:
- Za pregled službene Django dokumentacije, posjetite http://docs.djangoproject.com.
- Za informacije o Django proširenjima posjetite https://github.com/django-extensions/django-extensions.
- South library je često korišten za dovršavanje migracija baze podataka. Za više informacija posjetite https://pypi.python.org/pypi/South.
- Fabric library može pomoći sa streamlineom aplikacije. Za više informacija posjetite http://docs.fabfile.org.