Django: Różnice pomiędzy wersjami
Linia 1: | Linia 1: | ||
− | |||
− | |||
''Django'' to otwarty, napisany w [[Python|Pythonie]] framework przeznaczony do tworzenia aplikacji [[WWW]]. Na serwerach ''MyDevil.net'' możliwe jest uruchamianie stron opartych o ten framework dzięki zastosowaniu technologii ''Phusion Passenger''. | ''Django'' to otwarty, napisany w [[Python|Pythonie]] framework przeznaczony do tworzenia aplikacji [[WWW]]. Na serwerach ''MyDevil.net'' możliwe jest uruchamianie stron opartych o ten framework dzięki zastosowaniu technologii ''Phusion Passenger''. | ||
Linia 7: | Linia 5: | ||
Do uruchomienia strony napisanej w ''Django'' należy pierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że: | Do uruchomienia strony napisanej w ''Django'' należy pierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że: | ||
− | * Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]] | + | * Domena jest prawidłowo dodana i skonfigurowana w naszym systemie [[DNS]]. |
* Została dodana [[WWW|Strona WWW]] z wskazaniem typu [[Python]]. | * Została dodana [[WWW|Strona WWW]] z wskazaniem typu [[Python]]. | ||
Linia 14: | Linia 12: | ||
=== Projekt Django === | === Projekt Django === | ||
− | Głównym katalogiem projektu ''Django'' (tj. | + | Głównym katalogiem projektu ''Django'' (tj. katalogiem, w którym znajduje się plik <code class="directory">manage.py</code>) musi być folder <code class="directory">/usr/home/''login''/domains/''domena''/public_python</code>. Nazwa projektu ''Django'' nie ma znaczenia, dopóki zachowana jest powyższa nazwa katalogu. |
− | ==== Nowy projekt | + | ==== Nowy projekt Django ==== |
− | Nowy projekt | + | Nowy projekt Django należy utworzyć w katalogu <code class="directory">/usr/home/''login''/domains/''domena''/public_python</code> - najprostszym sposobem utworzenia odpowiedniego projektu jest wydanie następujących poleceń: |
cd /usr/home/''login''/domains/''domena''/ | cd /usr/home/''login''/domains/''domena''/ | ||
Linia 26: | Linia 24: | ||
W ostatnim poleceniu można zmienić nazwę <code class="directory">public_python</code> na dowolną nazwę projektu - należy wtedy pamiętać, że projekt zostanie utworzony w katalogu o tej właśnie nazwie, którą trzeba zmienić na <code class="directory">public_python</code>. | W ostatnim poleceniu można zmienić nazwę <code class="directory">public_python</code> na dowolną nazwę projektu - należy wtedy pamiętać, że projekt zostanie utworzony w katalogu o tej właśnie nazwie, którą trzeba zmienić na <code class="directory">public_python</code>. | ||
− | ==== Istniejący projekt | + | ==== Istniejący projekt Django ==== |
Istniejący projekt ''Django'' należy umieścić jako katalog <code class="directory">/usr/home/''login''/domains/''domena''/public_python</code>. W przypadku gdy projekt nie nazywa się <code class="directory">public_python</code> należy zmienić jego nazwę. | Istniejący projekt ''Django'' należy umieścić jako katalog <code class="directory">/usr/home/''login''/domains/''domena''/public_python</code>. W przypadku gdy projekt nie nazywa się <code class="directory">public_python</code> należy zmienić jego nazwę. | ||
Linia 32: | Linia 30: | ||
=== Konfiguracja ''Phusion Passenger'' === | === Konfiguracja ''Phusion Passenger'' === | ||
− | Ostatnim krokiem jest konfiguracja modułu ''Phusion Passenger'', który jest odpowiedzialny za uruchomienie aplikacji ''Django''. Należy w katalogu projektu | + | Ostatnim krokiem jest konfiguracja modułu ''Phusion Passenger'', który jest odpowiedzialny za uruchomienie aplikacji ''Django''. Należy w katalogu projektu Django (<code class="directory">/usr/home/''login''/domains/''domena''/public_python</code>) utworzyć plik <code class="directory">passenger_wsgi.py</code> i umieścić w nim następującą zawartość (zależnie od wersji Django), modyfikując linijkę wskazującą nazwę aplikacji (oznaczoną komentarzem): |
==== Django 1.7 i nowsze ==== | ==== Django 1.7 i nowsze ==== | ||
Linia 40: | Linia 38: | ||
sys.path.append(os.getcwd()) | sys.path.append(os.getcwd()) | ||
os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na | os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na | ||
− | # nazwę projektu | + | # nazwę projektu Django |
from django.core.wsgi import get_wsgi_application | from django.core.wsgi import get_wsgi_application | ||
Linia 52: | Linia 50: | ||
sys.path.append(os.getcwd()) | sys.path.append(os.getcwd()) | ||
os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na | os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na | ||
− | # nazwę projektu | + | # nazwę projektu Django |
import django.core.handlers.wsgi | import django.core.handlers.wsgi | ||
Linia 66: | Linia 64: | ||
Poprawność konfiguracji modułu ''Phusion Passenger'' można sprawdzić wydając polecenie <code>python passenger_wsgi.py</code> - jeśli aplikacja nie zwróci żadnych błędów to znaczy, że aplikacja powinna zostać prawidłowo uruchomiona przez passengera. | Poprawność konfiguracji modułu ''Phusion Passenger'' można sprawdzić wydając polecenie <code>python passenger_wsgi.py</code> - jeśli aplikacja nie zwróci żadnych błędów to znaczy, że aplikacja powinna zostać prawidłowo uruchomiona przez passengera. | ||
− | {{Warning|Polecenie <code>python passenger_wsgi.py</code> sprawdzi jedynie poprawność konfiguracji modułu ''Phusion Passenger'' - w przypadku błędów samej aplikacji | + | {{Warning|Polecenie <code>python passenger_wsgi.py</code> sprawdzi jedynie poprawność konfiguracji modułu ''Phusion Passenger'' - w przypadku błędów samej aplikacji Django, zostaną one obsłużone przez moduł, bądź samo Django. |
Błąd uniemożliwiający start aplikacji sprawi, że na stronie zostanie wyświetlony generyczny błąd ''Phusion Passenger''. Błędy w trakcie działania aplikacji zostaną złapane przez ''Django'' i ich obsługa jest zależna od konfiguracji samej aplikacji.}} | Błąd uniemożliwiający start aplikacji sprawi, że na stronie zostanie wyświetlony generyczny błąd ''Phusion Passenger''. Błędy w trakcie działania aplikacji zostaną złapane przez ''Django'' i ich obsługa jest zależna od konfiguracji samej aplikacji.}} |
Wersja z 12:09, 16 mar 2015
Django to otwarty, napisany w Pythonie framework przeznaczony do tworzenia aplikacji WWW. Na serwerach MyDevil.net możliwe jest uruchamianie stron opartych o ten framework dzięki zastosowaniu technologii Phusion Passenger.
Spis treści
Wstępna konfiguracja domeny
Do uruchomienia strony napisanej w Django należy pierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:
- Domena jest prawidłowo dodana i skonfigurowana w naszym systemie DNS.
- Została dodana Strona WWW z wskazaniem typu Python.
W przypadku chęci skorzystania z virtualenv przy dodawaniu strony należy podać ścieżkę do binarki python
znajdującej się wewnątrz katalogu wirtualnego środowiska.
Projekt Django
Głównym katalogiem projektu Django (tj. katalogiem, w którym znajduje się plik manage.py
) musi być folder /usr/home/login/domains/domena/public_python
. Nazwa projektu Django nie ma znaczenia, dopóki zachowana jest powyższa nazwa katalogu.
Nowy projekt Django
Nowy projekt Django należy utworzyć w katalogu /usr/home/login/domains/domena/public_python
- najprostszym sposobem utworzenia odpowiedniego projektu jest wydanie następujących poleceń:
cd /usr/home/login/domains/domena/ rm -rf public_python django-admin.py startproject public_python
W ostatnim poleceniu można zmienić nazwę public_python
na dowolną nazwę projektu - należy wtedy pamiętać, że projekt zostanie utworzony w katalogu o tej właśnie nazwie, którą trzeba zmienić na public_python
.
Istniejący projekt Django
Istniejący projekt Django należy umieścić jako katalog /usr/home/login/domains/domena/public_python
. W przypadku gdy projekt nie nazywa się public_python
należy zmienić jego nazwę.
Konfiguracja Phusion Passenger
Ostatnim krokiem jest konfiguracja modułu Phusion Passenger, który jest odpowiedzialny za uruchomienie aplikacji Django. Należy w katalogu projektu Django (/usr/home/login/domains/domena/public_python
) utworzyć plik passenger_wsgi.py
i umieścić w nim następującą zawartość (zależnie od wersji Django), modyfikując linijkę wskazującą nazwę aplikacji (oznaczoną komentarzem):
Django 1.7 i nowsze
import sys, os sys.path.append(os.getcwd()) os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na # nazwę projektu Django from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
Django do wersji 1.6 włącznie
import sys, os sys.path.append(os.getcwd()) os.environ['DJANGO_SETTINGS_MODULE'] = "nazwa_aplikacji.settings" # zmienić 'nazwa_aplikacji' na # nazwę projektu Django import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Nazwa aplikacji
Nazwę aplikacji (projektu Django) można wyciągnąć z pliku manage.py
poleceniem grep DJANGO_SETTINGS_MODULE manage.py
.
Testowanie konfiguracji
Poprawność konfiguracji modułu Phusion Passenger można sprawdzić wydając polecenie python passenger_wsgi.py
- jeśli aplikacja nie zwróci żadnych błędów to znaczy, że aplikacja powinna zostać prawidłowo uruchomiona przez passengera.
Polecenie python passenger_wsgi.py
sprawdzi jedynie poprawność konfiguracji modułu Phusion Passenger - w przypadku błędów samej aplikacji Django, zostaną one obsłużone przez moduł, bądź samo Django.
Błąd uniemożliwiający start aplikacji sprawi, że na stronie zostanie wyświetlony generyczny błąd Phusion Passenger. Błędy w trakcie działania aplikacji zostaną złapane przez Django i ich obsługa jest zależna od konfiguracji samej aplikacji.
Restart aplikacji
Restart aplikacji Django można wykonać za pomocą naszego panelu zarządzania usługą w zakładce WWW, lub przy użyciu polecenia systemu zarządzania kontem Devil: devil www restart domena
. Przy restarcie nie są usuwane pliki .pyc
.