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 [04/12/2015 11:35] Hypathie [Développer en Python avec Django et SQLite3] |
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [08/12/2015 06:34] Hypathie [Avant de commencer] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Développer en Python avec Django et SQLite3====== | + | ====== Développer en Python avec Django====== |
- | * Objet : Installer un environnement virtuel avec python3, et SQLite3 pour utiliser 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. |
* Niveau requis : {{tag>débutant}} | * Niveau requis : {{tag>débutant}} | ||
- | * Commentaires : Debian 8 | ||
- | ===== Configurations et installation de Django ===== | + | =====Avant de commencer ==== |
- | ==== Choisir sa version de Python sur sa Debian8 ==== | + | Sur Jessie python et python 3 sont tous deux installés. |
+ | ==== Installer les outils et bibliothèques pour développer en python ou python 3 ==== | ||
+ | |||
+ | * Fichiers d'en-tête de Python | ||
+ | |||
+ | <code=root>apt-get install python-dev python3-dev</code> | ||
+ | |||
+ | * Pour l'algèbre avec scipy | ||
+ | |||
+ | <code=root>apt-get install libblas3 libblas-dev liblapack3 liblapack-dev</code> | ||
+ | |||
+ | * Bibliothèques FreeType nécessaire par matplotlib | ||
+ | |||
+ | <code=root>apt-get install libfreetype6 libfreetype6-dev</code> | ||
+ | |||
+ | * Dépendances nécessaire pour la cryptographie | ||
+ | |||
+ | <code=root>apt-get install libffi-dev libssl-dev</code> | ||
+ | |||
+ | * Les paquets Core Python | ||
+ | |||
+ | <code=root>apt-get install python-pip python3-pip</code> | ||
+ | |||
+ | |||
+ | <code=root>apt-get install python-virtualenv python3-virtualenv</code> | ||
+ | |||
+ | <note> | ||
+ | |||
+ | - ''python3-pip'' (ou ''python-pip'') : installateur de paquets python, Pip permet d'installer aisément des modules Python, à la manière dont on installe des paquets dans une distribution linux; | ||
+ | - ''python3-dev'' (ou ''python-dev'' ): permet d'utiliser des outils de développement pour la construction des modules Python, non pris en charge par pip, en particulier pour utiliser des bibliothèques avec des extensions en C | ||
+ | - ''virtualenv'' : permet de créer un environnement cloisonné Python | ||
+ | |||
+ | * À consulter : https://virtualenv.readthedocs.org/en/latest/ \\ https://github.com/neurite/debian-setup/wiki/Basic-Development-Setup-on-Debian | ||
+ | </note> | ||
+ | |||
+ | |||
+ | |||
+ | ==== Choisir sa version de Python ==== | ||
* Pour tout le système avec update-alternatives : | * Pour tout le système avec update-alternatives : | ||
Ligne 45: | Ligne 81: | ||
<code root>update-alternatives --config python</code> | <code root>update-alternatives --config python</code> | ||
- | |||
- | <note important> | ||
- | Si l'on choisit d'utiliser Python3 pour tous le système, il faudra prendre garde de bien installer les outils python3 et non python2 :\ | ||
- | |||
- | Il faudra lancer : | ||
- | <code root>python3-pip python3-dev</code> | ||
- | |||
- | et non : | ||
- | |||
- | <code root>python-pip python-dev</code> | ||
- | </note> | ||
- | |||
- | |||
- | <note tip>**Il est possible de laisser la version Python 2 pour tout le système | ||
- | et d'utiliser la version 3 pour l'environnement de l'utilisateur courant.** | ||
- | |||
- | * Pour ce faire on choisit la version de Python2 pour tout le système : | ||
- | |||
- | <code root>update-alternatives --config python</code> | ||
- | |||
<code retour> | <code retour> | ||
Il existe 2 choix pour l'alternative python (qui fournit /usr/bin/python). | Il existe 2 choix pour l'alternative python (qui fournit /usr/bin/python). | ||
Ligne 80: | Ligne 96: | ||
<code retour>Python 2.7.9</code> | <code retour>Python 2.7.9</code> | ||
- | * On configure Python3 pour l'utilisateur courant : | + | * À savoir pour supprimer l'un des choix de la liste : ''update-alternatives --remove python /usr/bin/python2.7'' |
+ | |||
+ | <note warning> | ||
+ | Ne jamais désinstaller les versions inférieures à python 3 ! \\ | ||
+ | De nombreux logiciels ne fonctionneraient plus. | ||
+ | |||
+ | ''<del>apt-get purge python</del>'' | ||
+ | </note> | ||
+ | |||
+ | <note tip>**__Il est possible de laisser l'une des versions de python tout le système | ||
+ | et d'utiliser l'autre pour l'environnement de l'utilisateur courant.__** | ||
+ | |||
+ | |||
+ | **Par exemple pour configurer Python3 pour l'utilisateur courant :** | ||
- __On édite le fichier "~/bashrc" :__ | - __On édite le fichier "~/bashrc" :__ | ||
Ligne 100: | Ligne 129: | ||
<code retour>Python 3.4.2</code> | <code retour>Python 3.4.2</code> | ||
+ | </note> | ||
- | * **Pourquoi conserver deux versions de python ? :** | + | <note tip> |
- | - __On choisit d'activer Python3 que pour l'utilisateur courant et Python2 pour tout le système :__ | + | **Une bonne solution pour débuter est de ne pas choisir une des versions de python pour tout le système ou l'environnement de l'utilisateur courant. |
- | Ce choix est bon dans le cas où l'on veut s'exercer au code Python qui diffère entre les deux versions. | + | Dans ce cas, on travaille dans un environnement virtuel avec l'outil ''virtualenv'', la suite du tuto suit ce choix.** |
- | On peut par exemple, se créer un utilisateur qui utilisera Python2 | + | |
- | + | ||
- | - __On veut apprendre à coder en python directement avec le framework Django :__ | + | |
- | + | ||
- | Il faut alors choisir une **unique** version de Python pour tout le système, car comme dit plus haut,\ | + | |
- | les utiles python servant à utiliser Django s'installe en tant que root pour tous le système. | + | |
- | Et l'installation pour tout le système des outils python et python3 génère des conflits. | + | |
- | + | ||
- | Ou toujours travailler dans un **environnement python virtuel** en utilisant " virtualenv" (voir plus bas). | + | |
</note> | </note> | ||
- | |||
- | * Pour la suite de ce tuto : python3 pour tout le système : | ||
- | |||
- | <code root>update-alternatives --config python</code> | ||
- | <code retour> | ||
- | Il existe 2 choix pour l'alternative python (qui fournit /usr/bin/python). | ||
- | |||
- | Sélection Chemin Priorité État | ||
- | ------------------------------------------------------------ | ||
- | 0 /usr/bin/python3.4 2 mode automatique | ||
- | * 1 /usr/bin/python2.7 1 mode manuel | ||
- | 2 /usr/bin/python3.4 2 mode manuel | ||
- | |||
- | Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :0 | ||
- | </code> | ||
- | |||
- | <code root>python --version</code> | ||
- | <code retour>Python 3.4.2</code> | ||
- | |||
- | * Pour supprimer l'un des choix de la liste : | ||
- | |||
- | <code root>update-alternatives --remove python /usr/bin/python2.7</code> | ||
- | |||
- | |||
- | ====Installer les outils python nécessaires à l'installation d'un projet Django :==== | ||
- | |||
- | <code root>apt-get install python3-pip python3-dev virtualenv</code> | ||
- | |||
- | - python3-pip est un installateur de paquets python, Pip permet d'installer aisément des modules Python, à la manière dont on installe des paquets dans une distribution linux; | ||
- | - python3-dev : permet d'utiliser des outils de développement pour la construction des modules Python, non pris en charge par pip, en particulier pour utiliser des bibliothèques avec des extensions en C | ||
- | - virtualenv : permet de créer un environnement cloisonné Python | ||
- | |||
- | * À consulter : https://virtualenv.readthedocs.org/en/latest/ | ||
+ | ===== Configurations et installation de Django avec SQLite3===== | ||
Ligne 227: | Ligne 216: | ||
- | ===== Création d'un premier projet Django===== | + | ==== Création d'un premier projet Django==== |
<note> | <note> | ||
Ligne 323: | Ligne 312: | ||
<note> | <note> | ||
Rien de grave dans ce retour. | Rien de grave dans ce retour. | ||
- | Django prévient qu'aucune base de données n'a été migré. | + | Django prévient qu'aucune base de données n'a été migrée. |
Ce n'est pas important pour ce premier test. | Ce n'est pas important pour ce premier test. | ||
</note> | </note> | ||
Ligne 592: | Ligne 581: | ||
<code root>ifconfig</code> | <code root>ifconfig</code> | ||
- | * remarque : | + | * remarques : |
- On peut aussi taper dans son navigateur :\\ localhost:8000 ou 0.0.0.0:8000 si l'on a lancé :\\ python3 manage.py runserver 0.0.0.0:8000 | - On peut aussi taper dans son navigateur :\\ localhost:8000 ou 0.0.0.0:8000 si l'on a lancé :\\ python3 manage.py runserver 0.0.0.0:8000 | ||
Ligne 606: | Ligne 595: | ||
{{http://pix.toile-libre.org/upload/original/1449161189.png}} | {{http://pix.toile-libre.org/upload/original/1449161189.png}} | ||
+ | * Pour apprendre à gérer son site depuis le site d'administration de Django : https://docs.djangoproject.com/fr/1.8/intro/tutorial02/ | ||
+ | |||
+ | * Le création des Vues : https://docs.djangoproject.com/fr/1.8/intro/tutorial03/#writing-your-first-django-app-part-3 | ||
+ | |||
+ | * Factoriser son code Python : https://docs.djangoproject.com/fr/1.8/intro/tutorial04/#writing-your-first-django-app-part-4 | ||
+ | |||
+ | * Tests automatisés : https://docs.djangoproject.com/fr/1.8/intro/tutorial05/ | ||
+ | |||
+ | * 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===== |