Django

Instalace

Instalace Django

1.  Základní prostředí

Asi tu nepopíšu všechno, ale spíš, kde jsem zaškobrtnul.

1.1  Virtuální prostředí - virtualenvwrapper

Týká se Pythonu obecně, ne jen Djanga.

Python od verze 3.3 má vestavěnou podporu pro vytváření virtuálních prostředí, takže tohle už asi nebude potřeba.

1. V systému si nainstalujeme balíček python-pip

 # aptitude install python-pip

2. Nainstalujeme virtuální protředí - už přes pip.

 # pip install virtualenvwrapper

Pozor: Jako root!

Nainstaluje i balíčky na kterých závisí (mj. virtualenv).

Pozor: Virtuální prostředí je adresář se samostatnou instalací Pythonu a pythonovských modlů z pypi.python.org. Neslouží k ukládání našeho projektu. A naopak - virtuální prostředí nemá být podadresářem v našem projektu. Jsou to dva relativně oddělené světy. Virtuální prostředí v repozitáři je prasárna.

2a. Čteme dokumentaci na http://virtualenvwrapper.readthedocs.org/en/latest/

Komu se nechce, zestručním to tady:

2b. Do ~/.bashrc přidáme řádky:

 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
 export WORKON_HOME=$HOME/.virtualenvs
 export PROJECT_HOME=$HOME/Devel
 source /usr/local/bin/virtualenvwrapper.sh

První řádek říká, jakou verzi Pythonu chceme používat jako výchozí. Při vytváření konkrétního prostředí to můžeme změnit parametrem -p.

Druhý řádek nastavuje, kde budeme mít naše virtuální prostředí umístěná.

Třetí řádek nastavuje domovský adresář pro projekty.

Čtvrtý nastaví prostředí v shellu.

2c. Naučíme se příkazy pro virtualenvwrapper

Tento příkaz umožňuje používat i parametry příkazu virtualenv. Například -p pro zadání cesty k Pythonu, který chceme použít ve virtuálním prostředí (liší-li se od výchozího viz 2b).

mkvirtualenv jméno
Vytvoří virtuální prostředí daného jména a přepne nás do něj. Volitelně můžeme zadat parametr -p s cestou k jinému Pythonu, než jaký je v systému výchozí.
deactivate
Odpojí nás z virtuálního protředí zpět do normálního shellu.
rmvirtualenv jméno
Odstraní virtuální prostředí (z WORKON_HOME).
workon [jméno]
Přepne nás do virtuálního prostředí. Bez zadání jména vypíše seznam jmen existujících prostředí. Nejpoužívanější příkaz.
mkproject jméno
Vytvoří virtuální prostředí v WORKON_HOME a ještě adresář v PROJECT_HOME.

Dále budu před prompt psát "(virtenv)" - což je jako jméno prostředí do nějž jsme se přepnuli příkazem workon - když budu chtít zdůraznit, že se to děje ve virtuální prostředí a ne v základním systému.

Upgrade Pythonu v systému - nespustí se virtuál

Po upgrade Pythonu v základním systému se stává, že nejde aktivovat virtuální prostředí, nebo jde-li, už v něm nic nespustíme a naše snaha skončí nějakou chybou z oblasti "nejde načíst modul blablabla".

Je třeba upgradovat python v našem virtuálním prostředí takto:

 $ virtualenv jmeno_virtual_prostredi

Nebo komplexněji:

 $ virtualenv -p /usr/bin/python2.7 /var/www/django/venvs/jmeno_virtual_prostredi

chceme-li zadat konkrétní verzi Pythonu a naše virtuální prostředí neleží v $HOME/.virtualenvs/

1.2  Pip - který?

V každém virtuálním prostředí je nainstalován příkaz pip jehož pomocí přidáváme balíčky z pypi. Dbáme na to, abychom byli ve virtuálním prostředí, jinak si balíček nechtěně přidáme do základního systému.

Pip v základním systému nám pomohl nainstalovat virtualenvwrapper.

Pip ve virtuálních prostředích přidává balíčky pythonu pro dané prostředí.

V základním systému můžeme občas zaktualizovat virtualenvwrapper:

 # pip install -U virtualenvwrapper

Příkazy pip:

help
Co to asi dělá..? ;)
help příkaz
Nápověda ke konkrétnímu příkazu.
install balicek
Nainstaluje balíček.
search co
Prohledá archiv pypi a nejde vše, co se týká "co".
list
Vypíše seznam nainstalovaných balíčků (v základním systému vypíše všechny balíčky pythonu, nejen ty přidané pip-em). Není u starších verzí pip-u.
freeze
Jako list, ale ve formátu pro requirements.

Výstup příkaz freeze si můžeme uložit do souboru requirements.txt, který se dává do kořenového adresáře našeho projektu (vcs root), aby bylo jasné, na jakých balíčcích náš projekt závisí. Příkazem

 (virtenv) $ pip install -r requirements.txt

pak jednoduše naistalujeme, co potřebujeme - i se správnými verzemi.

1.3  Django

 (virtenv) $ pip install django

Můžeme (jako vždy u pip-u) zadat i číslo konkrétní verze balíčku:

 (virtenv) $ pip install django==1.6.3

1.4  PostgreSQL - psycopg2

Vyžaduje mít v systému naistalované balíčky:

  • pgsql-dev
  • python-dev
 (virtenv) $ pip install psycopg2

1.5  Další užitené balíčky

django-extensions
Rozšíří možnosti příkazu manage.py.

2.  Django projekt

Django má skvělou dokumentaci, tak jen stručně, co by se dalo přehlédnout.

 (virtenv) $ django-admin.py startproject jméno

Tento příkaz známe jak své boty. Začátečníkovi může uniknout možnost použít vlastní šablonu pro vytvoření projektu namísto té vestavěné. Nebo nějakou "světoznámou": https://www.djangopackages.com/grids/g/project-templates/