Vyhledávání na webu

Instalace a konfigurace Django Web Framework s virtuálními prostředími v CentOS/Debian - Část 1


„Tento článek je revidován a aktualizován nejnovější verzí Django – květen 2016“

Před nějakými 20 lety, kdy byl World Wide Web ještě v plenkách, bylo mít osobní nebo firemní webové stránky téměř vzácným luxusem. S následným rozvojem několika webových technologií a zavedením dynamického obsahu poskytovaného kombinací serverových programů a databází se společnosti již nemohly spokojit se statickými webovými stránkami.

Realitou se tak staly webové aplikace – programy v plném slova smyslu běžící nad webovým serverem a přístupné přes webový prohlížeč.

Aby byl vývoj jednodušší a efektivnější, byly navrženy webové rámce, které pomáhají programátorům v jejich úsilí vytvářet aplikace. Stručně řečeno, webový rámec se stará o běžné základní funkce v procesu vývoje, jako je správa uživatelských relací, interakce s databázemi a osvědčené postupy oddělení obchodní logiky od logiky zobrazení, abychom jmenovali několik příkladů.

V této sérii Django se třemi články vám představíme Django, populární webový framework založený na Pythonu. Z tohoto důvodu doporučujeme alespoň malou znalost tohoto programovacího jazyka, ale pokud s ním nemáte žádné nebo malé zkušenosti, provedeme vás také základy.

Instalace Django na servery CentOS a Debian

Ačkoli si můžete nainstalovat Django jak z Debianu (v1.7.7: rozšířená podpora bude ukončena prosince 2015), tak z Fedory EPEL (v1.6.11: rozšířená podpora byla ukončena na repozitářích duben 2015), dostupná verze není nejnovější stabilní verzí LTS (Long Term Support) (v1.8.13, od května 2016).

V tomto tutoriálu vám ukážeme, jak nainstalovat Django v1.8.13, protože jeho rozšířená podpora je zaručena minimálně do dubna 2018.

Doporučený způsob instalace Django je pomocí pip, oblíbeného nástroje pro správu balíčků Pythonu. Aby bylo možné vytvořit izolovaná prostředí Pythonu a vyhnout se konfliktům mezi projekty, které mohou vyžadovat různé verze softwarových závislostí, je vysoce podporováno použití virtuálních prostředí.

Nástroje, které se používají k vytváření a správě virtuálních prostředí Pythonu, se nazývají virtualenv.

Chcete-li provést instalaci, postupujte takto:

1. U distribucí založených na Fedoře (kromě samotné Fedory) nejprve povolte úložiště EPEL:

yum update && yum install epel-release

2. Nainstalujte pip a virtualenv:

Distribuce založené na Fedoře:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian a odvozeniny:
aptitude update && aptitude install python-pip virtualenv

3. Vytvořte adresář pro uložení vašeho počátečního projektu.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Vytvořte a aktivujte virtuální prostředí:

virtualenv myfirstdjangoenv

Výše uvedený příkaz vytvoří spoustu souborů a podadresářů do ~/myfirstdjangoenv a v podstatě nainstaluje místní kopii Pythonu a pip do aktuálního pracovního adresáře. . Dále musíme aktivovat virtuální prostředí, které jsme právě vytvořili:

source myfirstdjangoenv/bin/activate

5. Všimněte si, jak se příkazový řádek změní po posledním příkazu. Nyní je čas nainstalovat Django:

Všimněte si, že níže uvedený snímek obrazovky byl pořízen během předchozí verze tohoto výukového programu, ale očekávaný výstup je stejný při instalaci Django 1.8.13 ):


pip install Django==1.8.13

Verzi Django můžete zkontrolovat spuštěním shellu Pythonu z vašeho aktuálního pracovního adresáře:

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

(Opět platí, že výše uvedený příkaz by měl při kontrole aktuální verze Django vrátit 1.8.13).

Chcete-li ukončit výzvu Pythonu, zadejte:

>>> exit() 

a stiskněte Enter. Dále vypněte virtuální prostředí:

deactivate

Upozorňujeme, že zatímco virtuální prostředí zůstává deaktivováno, Django není k dispozici:

Jak vytvořit první projekt v Django

Chcete-li vytvořit projekt ve virtuálním prostředí, které jsme vytvořili dříve, je třeba jej aktivovat:

source myfirstdjangoenv/bin/activate

Dále framework vytvoří celou adresářovou strukturu pro uložení vašeho projektu. Chcete-li to provést, budete muset běžet.

django-admin startproject myfirstdjangoproject

Výše uvedený příkaz vytvoří ve vašem aktuálním pracovním adresáři adresář s názvem myfirstdjangoproject.

kde najdete soubor s názvem manage.py (utilita, která vám později pomůže spravovat váš projekt) a další podadresář (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Tento poslední podadresář bude sloužit jako kontejner pro soubory projektu.

Zatímco zbytek souborů bude dávat skutečný smysl poté, co zkontrolujeme nějaký Python, abychom mohli začít psát skutečnou webovou aplikaci, stojí za to a dobře si povšimnout klíčových souborů, které se nacházejí v adresáři kontejneru projektu:

  1. myfirstdjangoproject/__init__.py: Tento prázdný soubor říká Pythonu, že tento adresář by měl být považován za balíček Pythonu.
  2. myfirstdjangoproject/settings.py: Konkrétní nastavení pro tento projekt Django.
  3. myfirstdjangoproject/urls.py: TOC (Table Of Contents) vašeho webu s podporou Django.
  4. myfirstdjangoproject/wsgi.py: Vstupní bod pro webové servery kompatibilní s WSGI, které slouží vašemu projektu.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Kromě toho má Django vestavěný lehký webový server (napsaný v Pythonu podobně jako Python SimpleHTTP, co jiného?), který lze použít k testování aplikací během vývoje proces, aniž byste se museli zabývat úkolem nastavení webového serveru v této konkrétní fázi.

Musíte však vědět, že to není vhodné pro produkční prostředí – pouze pro vývoj. Chcete-li spustit nově vytvořený projekt, změňte svůj aktuální pracovní adresář na adresář kontejneru pro váš projekt (~/myfirstdjangoenv/myfirstdjangoproject) a spusťte:

python manage.py runserver 0.0.0.0:8000

Pokud narazíte na následující chybu:

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

Udělejte, co říká:

python manage.py migrate

a poté znovu spusťte server:

python manage.py runserver 0.0.0.0:8000

Konceptu migrací se budeme věnovat v dalších článcích této série, takže chybovou zprávu můžete prozatím ignorovat.

V každém případě můžete změnit výchozí port, na kterém bude vestavěný webový server naslouchat. Použitím 0.0.0.0 jako síťového rozhraní k naslouchání umožňujeme ostatním počítačům ve stejné síti přístup k uživatelskému rozhraní projektu (pokud místo toho použijete 127.0.0.1, k uživatelskému rozhraní budete mít přístup pouze z localhost).

Můžete také změnit port na jiný podle svého výběru, ale musíte se také ujistit, že provoz přes takový port je povolen přes bránu firewall:

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

Samozřejmě je samozřejmé, že budete muset aktualizovat povolený port, pokud se při spouštění odlehčeného webového serveru rozhodnete použít jiný.

Ve vašem terminálu byste měli vidět následující výstup:

python manage.py runserver 0.0.0.0:8000

V tomto okamžiku můžete otevřít svůj oblíbený webový prohlížeč a přejít na IP adresu počítače, kde jste nainstalovali Django, následovanou číslem portu. V mém případě je to box Debian Jessie s IP 192.168.0.25 a naslouchající na portu 8000:

http://192.168.0.25:8000

I když je skvělé, že se nám podařilo dokončit počáteční nastavení projektu, zbývá ještě mnoho práce, jak je uvedeno ve zprávě výše.

souhrn

V této příručce jsme vysvětlili, jak nainstalovat a nakonfigurovat virtuální prostředí pro Django, všestranný open source webový rámec založený na Pythonu.

Bez ohledu na to, zda jste vývojář aplikací nebo správce systému, budete chtít tento článek a zbytek této série uložit do záložek, protože je pravděpodobné, že v určitém okamžiku budete muset zvážit potřebu takového nástroje pro své každodenní úkoly.

V následujících článcích této série probereme, jak navázat na to, co jsme již dokázali, a vytvořit jednoduchou, ale funkční webovou aplikaci využívající Django a Python.

Jako vždy nám neváhejte napsat, pokud máte dotazy k tomuto článku nebo návrhy na zlepšení. Těšíme se na setkání s Vámi!