Wyszukiwanie w witrynie

Instalowanie i konfigurowanie środowiska sieciowego Django ze środowiskami wirtualnymi w CentOS/Debian — część 1


„Ten artykuł został poprawiony i zaktualizowany w najnowszej wersji Django – maj 2016”

Około 20 lat temu, kiedy sieć WWW była jeszcze w powijakach, posiadanie osobistej lub firmowej witryny internetowej było niemal rzadkim luksusem. Wraz z późniejszym rozwojem kilku technologii internetowych i wprowadzeniem dynamicznej treści zapewnianej przez połączenie programów po stronie serwera i baz danych, firmy nie mogły już zadowalać się posiadaniem statycznej strony internetowej.

Tym samym aplikacje internetowe stały się rzeczywistością – programy w pełnym tego słowa znaczeniu, działające na serwerze WWW i dostępne za pośrednictwem przeglądarki internetowej.

Aby uczynić programowanie łatwiejszym i bardziej efektywnym, zaprojektowano frameworki sieciowe, aby pomóc programistom w ich wysiłkach związanych z tworzeniem aplikacji. Krótko mówiąc, framework sieciowy zajmuje się typowymi podstawowymi funkcjonalnościami w procesie programowania, takimi jak zarządzanie sesjami użytkowników, interakcja z bazami danych i dobra praktyka oddzielania logiki biznesowej od logiki wyświetlania, żeby wymienić tylko kilka przykładów.

W tej serii składającej się z trzech artykułów o Django przedstawimy Ci Django, popularny framework sieciowy oparty na Pythonie. Z tego powodu zalecana jest przynajmniej niewielka znajomość tego języka programowania, ale jeśli nie masz z nim żadnego doświadczenia, przeprowadzimy Cię również przez podstawy.

Instalowanie Django na serwerach CentOS i Debian

Chociaż możesz zainstalować Django zarówno z Debiana (v1.7.7: rozszerzone wsparcie zostanie zakończone grudnia 2015), jak i Fedory EPEL ( >v1.6.11: rozszerzone wsparcie zostało przerwane w kwietniu 2015) repozytoriów, dostępna wersja nie jest najnowszą stabilną wersją LTS (Long Term Support) (v1.8.13, stan na maj 2016).

W tym samouczku pokażemy, jak zainstalować Django v1.8.13, ponieważ jego rozszerzone wsparcie jest gwarantowane co najmniej do kwietnia 2018 roku.

Zalecaną metodą instalacji Django jest użycie pip, popularnego narzędzia do zarządzania pakietami Pythona. Ponadto, aby stworzyć izolowane środowiska Pythona i uniknąć konfliktów między projektami, które mogą wymagać różnych wersji zależności oprogramowania, zdecydowanie zaleca się korzystanie ze środowisk wirtualnych.

Narzędzia używane do tworzenia wirtualnych środowisk Python i zarządzania nimi nazywają się virtualenv.

Aby przeprowadzić instalację, wykonaj następujące kroki:

1. W przypadku dystrybucji opartych na Fedorze (z wyjątkiem samej Fedory) włącz najpierw repozytorium EPEL:

yum update && yum install epel-release

2. Zainstaluj pip i virtualenv:

Dystrybucje oparte na Fedorze:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian i pochodne:
aptitude update && aptitude install python-pip virtualenv

3. Utwórz katalog do przechowywania początkowego projektu.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Utwórz i aktywuj środowisko wirtualne:

virtualenv myfirstdjangoenv

Powyższe polecenie tworzy kilka plików i podkatalogów w ~/myfirstdjangoenv i zasadniczo instaluje lokalną kopię Pythona i pip w bieżącym katalogu roboczym . Następnie musimy aktywować właśnie utworzone środowisko wirtualne:

source myfirstdjangoenv/bin/activate

5. Zwróć uwagę, jak zmienia się wiersz poleceń po wydaniu ostatniego polecenia. Nadszedł czas na instalację Django:

Pamiętaj, że poniższy zrzut ekranu został wykonany podczas poprzedniej wersji tego samouczka, ale oczekiwany wynik jest taki sam po instalacji Django 1.8.13 ):


pip install Django==1.8.13

Możesz sprawdzić wersję Django, uruchamiając powłokę Pythona z bieżącego katalogu roboczego:

python
>>> import django
>>> print(django.get_version())

(Ponownie powyższe polecenie powinno zwrócić 1.8.13 podczas sprawdzania bieżącej wersji Django).

Aby wyjść z monitu Pythona, wpisz:

>>> exit() 

i naciśnij Enter. Następnie wyłącz środowisko wirtualne:

deactivate

Należy pamiętać, że dopóki środowisko wirtualne pozostaje dezaktywowane, Django nie jest dostępne:

Jak stworzyć pierwszy projekt w Django

Aby stworzyć projekt w stworzonym wcześniej środowisku wirtualnym należy je aktywować:

source myfirstdjangoenv/bin/activate

Następnie framework utworzy całą strukturę katalogów do przechowywania Twojego projektu. Aby to zrobić, musisz biegać.

django-admin startproject myfirstdjangoproject

Powyższe polecenie utworzy katalog o nazwie myfirstdjangoproject w bieżącym katalogu roboczym.

gdzie znajdziesz plik o nazwie manage.py (narzędzie, które pomoże Ci później zarządzać projektem) i kolejny podkatalog (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Ten ostatni podkatalog będzie służył jako kontener na pliki projektu.

Chociaż reszta plików będzie miała sens po przejrzeniu Pythona i rozpoczęciu pisania prawdziwej aplikacji internetowej, warto zwrócić uwagę na kluczowe pliki, które zostaną znalezione w katalogu kontenera projektu:

  1. myfirstdjangoproject/__init__.py: Ten pusty plik informuje Pythona, że ten katalog powinien być uważany za pakiet Pythona.
  2. myfirstdjangoproject/settings.py: specyficzne ustawienia dla tego projektu Django.
  3. myfirstdjangoproject/urls.py: spis treści (spis treści) Twojej witryny opartej na Django.
  4. myfirstdjangoproject/wsgi.py: punkt wejścia dla serwerów internetowych zgodnych z WSGI do obsługi Twojego projektu.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Ponadto Django ma lekki wbudowany serwer WWW (napisany w Pythonie podobnym do Pythona SimpleHTTP, co jeszcze?), którego można używać do testowania aplikacji podczas programowania procesu bez konieczności zajmowania się zadaniem ustawienia serwera WWW na tym konkretnym etapie.

Trzeba jednak wiedzieć, że nie nadaje się to do środowiska produkcyjnego – tylko do programowania. Aby uruchomić nowo utworzony projekt, zmień bieżący katalog roboczy na katalog kontenera swojego projektu (~/myfirstdjangoenv/myfirstdjangoproject) i uruchom:

python manage.py runserver 0.0.0.0:8000

Jeśli napotkasz następujący błąd:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Zrób to, co jest napisane:

python manage.py migrate

a następnie ponownie uruchom serwer:

python manage.py runserver 0.0.0.0:8000

Koncepcję migracji omówimy w kolejnych artykułach z tej serii, więc na razie możesz zignorować komunikat o błędzie.

W każdym razie możesz zmienić domyślny port, na którym będzie nasłuchiwał wbudowany serwer WWW. Używając 0.0.0.0 jako interfejsu sieciowego do nasłuchiwania, umożliwiamy innym komputerom w tej samej sieci dostęp do interfejsu użytkownika projektu (jeśli zamiast tego użyjesz 127.0.0.1, dostęp do interfejsu użytkownika będzie możliwy tylko z hosta lokalnego).

Możesz także zmienić port na inny, wybrany przez Ciebie, ale musisz także upewnić się, że ruch przez taki port jest dozwolony przez Twoją zaporę ogniową:

firewall-cmd --add-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp

Oczywiście jest rzeczą oczywistą, że będziesz musiał zaktualizować dozwolony port, jeśli zdecydujesz się użyć innego podczas uruchamiania lekkiego serwera WWW.

Powinieneś zobaczyć następujące dane wyjściowe w terminalu:

python manage.py runserver 0.0.0.0:8000

W tym momencie możesz otworzyć swoją ulubioną przeglądarkę internetową i przejść do adresu IP komputera, na którym zainstalowałeś Django, a następnie numeru portu. W moim przypadku jest to skrzynka Debian Jessie z adresem IP 192.168.0.25 i nasłuchująca na porcie 8000:

http://192.168.0.25:8000

Chociaż to wspaniała rzecz, że udało nam się ukończyć wstępną konfigurację projektu, nadal pozostaje wiele do zrobienia, jak wskazano w powyższej wiadomości.

Streszczenie

W tym przewodniku wyjaśniliśmy, jak zainstalować i skonfigurować środowisko wirtualne dla Django, wszechstronnego frameworku internetowego typu open source opartego na Pythonie.

Niezależnie od tego, czy jesteś twórcą aplikacji, czy administratorem systemu, będziesz chciał dodać ten artykuł i resztę tej serii do zakładek, ponieważ jest prawdopodobne, że w pewnym momencie będziesz musiał rozważyć potrzebę takiego narzędzia do swoich codziennych zadań.

W kolejnych artykułach z tej serii omówimy, jak wykorzystać to, co już osiągnęliśmy, aby stworzyć prostą, ale funkcjonalną aplikację internetową przy użyciu Django i Pythona.

Jak zawsze, nie wahaj się napisać do nas, jeśli masz pytania dotyczące tego artykułu lub sugestie dotyczące ulepszeń. Oczekujemy na kontakt zwrotny!