Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [08/12/2015 18:27] Hypathie [Créer des projets Django en python2 ou python3] |
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [14/12/2015 07:39] Hypathie [Créer des projets Django en python2 ou python3] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Développer en Python3 avec Django====== | ====== Développer en Python3 avec Django====== | ||
- | * Objet : Installer un environnement virtuel avec python3 pour utiliser Django \\ essayer un mini projet avec chacune des différentes bases de données supportées par ORM de Django. | + | * Objet : Installer un environnement virtuel pour coder en python3 avec Django |
* Niveau requis : {{tag>débutant}} | * Niveau requis : {{tag>débutant}} | ||
Ligne 7: | Ligne 7: | ||
===== Installations ===== | ===== Installations ===== | ||
- | **Installer les outils et bibliothèques pour développer en python ou python3** | + | ===Installer les outils et bibliothèques pour développer en python ou python3=== |
<note tip> | <note tip> | ||
Ligne 23: | Ligne 23: | ||
* Bibliothèques FreeType nécessaire par matplotlib | * Bibliothèques FreeType nécessaire par matplotlib | ||
- | <code=root>apt-get install libfreetype6 libfreetype6-dev</code> | + | <code root>apt-get install libfreetype6 libfreetype6-dev</code> |
* Dépendances nécessaire pour la cryptographie | * Dépendances nécessaire pour la cryptographie | ||
Ligne 66: | Ligne 66: | ||
<code root>apt-get install tree</code> | <code root>apt-get install tree</code> | ||
+ | ===Vim IDE coder pour python3 === | ||
+ | |||
+ | * https://debian-facile.org/utilisateurs:hypathie:tutos:vim-ide-python?&#installer-vim-ide-pour-python | ||
+ | * https://code.djangoproject.com/wiki/UsingVimWithDjango | ||
+ | * https://github.com/yodiaditya/vim-pydjango | ||
===== Créer des projets Django en python2 ou python3===== | ===== Créer des projets Django en python2 ou python3===== | ||
Ligne 81: | Ligne 86: | ||
<note tip> | <note tip> | ||
- | L'idée suivie ici est de pouvoir aussi bien créer des projets Django codés en python 3 tandis que c'est la version python 2 qui est en place sur tout le système que l'inverse, c'est-à-dire, pouvoir créer des projects Django codés en python2 alors que c'est python 3 qui est mise en place sur tout le système. \\ | + | **L'idée suivie ici est de pouvoir aussi bien créer des projets Django pour coder en python 3 tandis que c'est la version python 2 qui est en place sur tout le système que l'inverse, c'est-à-dire, pouvoir créer des projects Django pour coder en python2 alors que c'est une version 3 de python qui est mise en place sur tout le système.** \\ |
- | Pour ce faire, on va créer un environnement virtuel dans un dossier créé dans le repertoire courant de l'utilisateur du système. | + | Pour ce faire, on va créer un environnement virtuel dans un dossier créé dans le répertoire courant de l'utilisateur du système. |
On pourra alors installer Django aussi bien pour y coder en python2 qu'en python3, sans se soucier de la version mise en place sur l'ensemble du système. \\ | On pourra alors installer Django aussi bien pour y coder en python2 qu'en python3, sans se soucier de la version mise en place sur l'ensemble du système. \\ | ||
Cela évitera aussi de se mélanger les pinceaux entre les utilitaires ''pip install ...'' ou ''pip3 install ...''. \\ | Cela évitera aussi de se mélanger les pinceaux entre les utilitaires ''pip install ...'' ou ''pip3 install ...''. \\ | ||
- | On n'utilisera pas ''virtualenv'' seul, mais on l'utilisera avec ''pyenv'' afin de s'éviter quelque conflits lors de l'installation de django. \\ | + | **On n'utilisera pas ''virtualenv'' seul, mais on l'utilisera avec ''pyenv'' afin de s'éviter quelque conflits lors de l'installation de django.** \\ |
En effet : | En effet : | ||
Ligne 128: | Ligne 133: | ||
==== Installer pyenv==== | ==== Installer pyenv==== | ||
+ | |||
+ | * Références : https://github.com/yyuu/pyenv | ||
<code user>git clone https://github.com/yyuu/pyenv.git ~/.pyenv</code> | <code user>git clone https://github.com/yyuu/pyenv.git ~/.pyenv</code> | ||
+ | |||
+ | * On configure le PATH en ajoutant quelques lignes au fichier ~/.bashrc | ||
+ | |||
<code user>echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc</code> | <code user>echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc</code> | ||
<code user>echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc</code> | <code user>echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc</code> | ||
<code user>echo 'eval "$(pyenv init -)"' >> ~/.bashrc</code> | <code user>echo 'eval "$(pyenv init -)"' >> ~/.bashrc</code> | ||
+ | |||
+ | * On recharge son shell | ||
+ | |||
<code user>exec $SHELL</code> | <code user>exec $SHELL</code> | ||
- | <code user>pyenv</code> | ||
- | <code retour>pyenv 20151124-16-g132179d | ||
- | Usage: pyenv <command> [<args>] | ||
- | Some useful pyenv commands are: | + | * On installe les versions de python que l'on voudra utiliser dans différents projets |
- | commands List all available pyenv commands | + | |
- | local Set or show the local application-specific Python version | + | |
- | global Set or show the global Python version | + | |
- | shell Set or show the shell-specific Python version | + | |
- | install Install a Python version using python-build | + | |
- | uninstall Uninstall a specific Python version | + | |
- | rehash Rehash pyenv shims (run this after installing executables) | + | |
- | version Show the current Python version and its origin | + | |
- | versions List all Python versions available to pyenv | + | |
- | which Display the full path to an executable | + | |
- | whence List all Python versions that contain the given executable | + | |
- | See `pyenv help <command>' for information on a specific command. | ||
- | For full documentation, see: https://github.com/yyuu/pyenv#readme</code> | ||
<code user>pyenv install 2.7.9</code> | <code user>pyenv install 2.7.9</code> | ||
<code user>pyenv install 3.4.3</code> | <code user>pyenv install 3.4.3</code> | ||
Ligne 191: | Ligne 188: | ||
* Pour coder dans une version de python, on appelle le shell de pyenv de la version souhaitée | * Pour coder dans une version de python, on appelle le shell de pyenv de la version souhaitée | ||
- | - Pour que le shell de pyenv utilise la version 2 (installée plutôt) | + | - Pour utiliser la version 2 (installée plutôt) |
<code user>pyenv shell 2.7.9</code> | <code user>pyenv shell 2.7.9</code> | ||
- Pour savoir quelle est la version de son shell | - Pour savoir quelle est la version de son shell | ||
Ligne 203: | Ligne 200: | ||
<code user>/home/hypathie/.pyenv/shims/python</code> | <code user>/home/hypathie/.pyenv/shims/python</code> | ||
- | - Pour que le shell de pyenv utilise la version 3 (installée aussi plutôt) | + | - Pour utiliser la version 3 (installée aussi plutôt) |
<code user>pyenv shell 3.4.3</code> | <code user>pyenv shell 3.4.3</code> | ||
<code user>python --version</code> | <code user>python --version</code> | ||
Ligne 230: | Ligne 227: | ||
====Installer Django ==== | ====Installer Django ==== | ||
+ | |||
+ | * On vérifie qu'on est dans le répertoire de l'environnement préparé plus haut | ||
+ | |||
+ | <code user>pwd</code> | ||
+ | <code retour>/home/hypathie/ProjetsDjangoPy3</code> | ||
+ | |||
+ | * On installe Django | ||
<code user>pip install django</code> | <code user>pip install django</code> | ||
Ligne 255: | Ligne 259: | ||
<code user>python3 -c "import django; print(django.get_version())"</code> | <code user>python3 -c "import django; print(django.get_version())"</code> | ||
- | aussi bien que : | + | on a aussi : |
- | + | ||
- | <code user>python -c "import django; print(django.get_version())"</code> | + | |
<code retour>1.9</code> | <code retour>1.9</code> | ||
Ligne 276: | Ligne 278: | ||
* On va dans son répertoire configuré pour python 3 dans lequel est installé django | * On va dans son répertoire configuré pour python 3 dans lequel est installé django | ||
<code user>cd ~/ProjetsDjangoPy3/</code> | <code user>cd ~/ProjetsDjangoPy3/</code> | ||
+ | |||
+ | * On active pyenv | ||
+ | |||
+ | <code user>pyenv activate 1.8-3.4</code> | ||
</note> | </note> | ||
Ligne 297: | Ligne 303: | ||
<note tip> | <note tip> | ||
- | Et voilà, partir de là, on retombe sur nos pattes et l'on peut suivre simplement le premier projet de la doc officielle de django alors que notre environnement virtuel est sous python 3 ! \\ | + | * Et voilà, partir de là, on retombe sur nos pattes |
+ | On peut suivre simplement le premier projet de la doc officielle de Django et les commandes qu'elle indique alors que notre environnement virtuel est sous python 3 ! \\ | ||
https://docs.djangoproject.com/fr/1.8/intro/tutorial01/ \\ | https://docs.djangoproject.com/fr/1.8/intro/tutorial01/ \\ | ||
- | Notre avantage, on peut aussi bien lancer à la place des deux commandes suivantes : | + | * Allons-y : |
- | * On fait attention d'être bien dans répertoire ''premierProjet'' et non dans son sous-répertoire de même nom ! | + | En prenant garde d'être bien dans le projet Django (répertoire ''premierProjet'' et non dans son sous-répertoire de même nom !) |
<code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | <code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | ||
+ | |||
+ | On peut charger la base de donnée associée au projet Django | ||
<code user>python manage.py migrate</code> | <code user>python manage.py migrate</code> | ||
- | que celles-ci 8-) | + | alors qu'on n'a : |
+ | |||
+ | <code user>python --version</code> | ||
+ | <code retour>Python 3.4.3</code> | ||
+ | |||
+ | Mais on aurait tout aussi bien pu lancer cette commande-ci 8-) | ||
<code user>python3 manage.py migrate</code> | <code user>python3 manage.py migrate</code> | ||
Ligne 319: | Ligne 333: | ||
<note> | <note> | ||
+ | |||
+ | **Sur la commande ''python manage.py migrate'' exécutée plutôt** | ||
+ | |||
* On remarque que la commande ''python manage.py migrate'' a créé le fichier ''db.sqlite3'' | * On remarque que la commande ''python manage.py migrate'' a créé le fichier ''db.sqlite3'' | ||
Ligne 567: | Ligne 584: | ||
* Évidemment, on code en python 3 dans le fichier de création de Modèle ''models.py'' ! | * Évidemment, on code en python 3 dans le fichier de création de Modèle ''models.py'' ! | ||
- | Un lien utile sur les différences entre le code python2 et le code python 3 : http://apprendre-python.com/page-syntaxe-differente-python2-python3-python-differences | + | * Un lien utile sur les différences entre le code python2 et le code python 3 : \\ http://apprendre-python.com/page-syntaxe-differente-python2-python3-python-differences |
- | * Pour plus de détails et s'exercer, exemple du site officiel de Django : https://docs.djangoproject.com/fr/1.8/intro/tutorial01/#playing-with-the-api | + | * Pour plus de détails et s'exercer, exemple du site officiel de Django : \\ https://docs.djangoproject.com/fr/1.8/intro/tutorial01/#playing-with-the-api |
</note> | </note> | ||
Ligne 626: | Ligne 643: | ||
* Utiliser du Javascript, du CSS avec Django : https://docs.djangoproject.com/fr/1.8/intro/tutorial06/#writing-your-first-django-app-part-6 | * Utiliser du Javascript, du CSS avec Django : https://docs.djangoproject.com/fr/1.8/intro/tutorial06/#writing-your-first-django-app-part-6 | ||
- | =====Configurer Vim pour Python ===== | ||
- | * On installe curl | ||
- | <code root>apt-get install curl</code> | ||
- | |||
- | * On installe git : | ||
- | |||
- | <code root>apt-get install git-core</code> | ||
- | |||
- | * On installe pathogen | ||
- | |||
- | Voir : https://github.com/search?utf8=%E2%9C%93&q=pathogen | ||
- | |||
- | <code user> | ||
- | mkdir -p ~/.vim/autoload ~/.vim/bundle && \ | ||
- | curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim | ||
- | </code> | ||
- | |||
- | * On crée et édite un fichier caché ~/.vimrc : | ||
- | |||
- | <code user>vim ~/.vimrc</code> | ||
- | |||
- | <file> | ||
- | execute pathogen#infect() | ||
- | syntax on | ||
- | filetype plugin indent on | ||
- | </file> | ||
- | |||
- | pathogen va chercher dans le répertoire bundle les plugin qu'on lui a installé et les utiliser comme si on les avait installé dans le fichier .vimrc | ||
- | |||
- | * On installe le module nerdtree : | ||
- | |||
- | Voir : https://github.com/scrooloose/nerdtree | ||
- | |||
- | <code user>git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree</code> | ||
- | |||
- | <note tip> | ||
- | ** | ||
- | Principales commandes de NERD Tree :** | ||
- | |||
- | |||
- | t: Ouvrir le fichier sélectionné dans un nouvel onglet | ||
- | i: Ouvrez le fichier sélectionné dans une fenêtre fissure verticale | ||
- | s: Open the selected file in a vertical split window | ||
- | I: Commutation de fichiers cachés | ||
- | m: Pour faire apparaître un menu qui vous permettra d'ajouter rapidement, déplacer(=renomer), copier et supprimer des nœuds (ou fichiers). | ||
- | R: Actualiser l'arbre, utile si les fichiers ont changés en dehors de Vim | ||
- | ?: Commutation entre l'aide rapide et l'explorateur NERD Tree | ||
- | Ctrl +w puis w: Passer de l'explorateur NERD Tree à la fenêtre d'édition des fichiers | ||
- | |||
- | </note> | ||
- | |||
- | * On installe vim-airLine améliorer le statusline. | ||
- | |||
- | <code user>git clone https://github.com/bling/vim-airline.git ~/.vim/bundle/vim-airline</code> | ||
- | |||
- | On ajoute la ligne suivante dans ''~./vimrc'' : | ||
- | |||
- | <code>let g:airline#extensions#tabline#enabled = 1</code> | ||
- | |||
- | <note tip> | ||
- | * Après avoir ouvert plusieurs fichiers, pour passer d'un fichier à l'autre, le curseur entant placé dans l'encadré d'édition d'un fichier: | ||
- | |||
- | - On peut utiliser la commande vim '':register'' puis on choisit son buffer ; | ||
- | - On peut faire '':bn'' (pour Buffer Next) ou '':bp'' (pour Buffer Prevous) ; | ||
- | |||
- | * On peut se faire un racourcit : | ||
- | |||
- | - On édite ''~/.vimrc'' | ||
- | - on ajoute : | ||
- | |||
- | <code> | ||
- | nmap <C-n> :bn<CR> | ||
- | nmap <C-p> :bp<CR> | ||
- | </code> | ||
- | |||
- | * Pour utiliser la souris | ||
- | |||
- | <code> | ||
- | set mouse=a | ||
- | </code> | ||
- | </note> | ||
- | |||
- | |||
- | * Utilisation de la souris pour naviger entre les fenêtres, et sélectionner dans une seule fenêtre (i.e mode visuel de vim) | ||
- | |||
- | On édite ''~/.vimrc'' | ||
- | |||
- | On ajoute : | ||
- | <file> | ||
- | set mouse=a | ||
- | </file> | ||
- | |||
- | * On ajoute le plugin syntastic | ||
- | |||
- | Voir : https://github.com/scrooloose/syntastic | ||
- | |||
- | <code user>git clone https://github.com/scrooloose/syntastic.git ~/.vim/bundle/syntastic</code> | ||
- | |||
- | * On ajoute le plugin tagbar | ||
- | |||
- | <code user>git clone https://github.com/majutsushi/tagbar.git ~/.vim/bundle/tagbar</code> | ||
- | |||
- | <note tip> | ||
- | Ajout dans '' ~/.vimrc '' | ||
- | <code> | ||
- | "Racourci clavier pour basculer avec Tagbar | ||
- | nmap <F2> :TagbarToggle<CR> | ||
- | </code> | ||
- | </note> | ||
- | |||
- | |||
- | * Ajout de l'autocomplétion : | ||
- | <note tip> | ||
- | Ajout dans '' ~/.vimrc '' | ||
- | <code> | ||
- | "Pour utiliser un plugin d'autocomplétion | ||
- | set omnifunc=syntaxComplet#Complete | ||
- | </code> | ||
- | </note> | ||
- | ===== Configurations et installation de Django avec PostgreSQL===== |