logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 10:40]
Hypathie [Mise en place d'un environnement minimal pour utiliser Django]
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [06/12/2015 07:54]
Hypathie [Configurations et installation de Django avec SQLite3]
Ligne 1: Ligne 1:
-====== Développer en Python avec Django ======+====== Développer en Python avec Django======
  
-  * Objet : Installer un environnement pour 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 : FIXME {{tag>​débutant }} +  * Niveau requis : {{tag>​débutant}}
-  * Commentaires : //Contexte d'​utilisation du sujet du tuto. // +
  
  
-===== Mise en place d'un environnement minimal pour utiliser ​Django =====+===== Configurations et installation de Django ​avec SQLite3=====
  
-==== Choisir sa version de Python ​sur sa Debian8 ​====+==== Activer Python3 ​sur Jessie ​====
  
  
Ligne 18: Ligne 17:
   * Charger les différentes versions de Python :   * Charger les différentes versions de Python :
  
-- __Pour voir où sont les version ​de python disponibles :__+- __Pour voir où sont les versions ​de python disponibles :__
  
 <code user> ls /​usr/​bin/​python*</​code>​ <code user> ls /​usr/​bin/​python*</​code>​
Ligne 47: Ligne 46:
  
 <note important>​ <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 :\+Si l'on choisit d'​utiliser Python3 pour tout le système, il faudra prendre garde de bien installer les outils python3 et non python2 :\
  
 Il faudra lancer : Il faudra lancer :
Ligne 110: Ligne 109:
 - __On veut apprendre à coder en python directement avec le framework Django :__ - __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,\ +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.+les outils ​python servant à utiliser Django s'installent ​en tant que root pour tout le système.
 Et l'​installation pour tout le système des outils python et python3 génère des conflits. Et l'​installation pour tout le système des outils python et python3 génère des conflits.
  
Ligne 225: Ligne 224:
   * **Manuel officiel de pip** : https://​pip.pypa.io/​en/​stable/​user_guide/​   * **Manuel officiel de pip** : https://​pip.pypa.io/​en/​stable/​user_guide/​
 </​note>​ </​note>​
 +
  
 ==== Création d'un premier projet Django==== ==== Création d'un premier projet Django====
Ligne 379: Ligne 379:
     ├── __init__.py     ├── __init__.py
     ├── __pycache__     ├── __pycache__
-    │   ├── __init__.cpython-34.pyc +    │   ​├── __init__.cpython-34.pyc 
-    │   ├── settings.cpython-34.pyc +    │   ​├── settings.cpython-34.pyc 
-    │   ├── urls.cpython-34.pyc +    │   ​├── urls.cpython-34.pyc 
-    │   └── wsgi.cpython-34.pyc+    │   ​└── wsgi.cpython-34.pyc
     ├── settings.py     ├── settings.py
     ├── urls.py     ├── urls.py
Ligne 419: Ligne 419:
     ├── __init__.py     ├── __init__.py
     ├── __pycache__     ├── __pycache__
-    │   ├── __init__.cpython-34.pyc +    │   ​├── __init__.cpython-34.pyc 
-    │   ├── settings.cpython-34.pyc +    │   ​├── settings.cpython-34.pyc 
-    │   ├── urls.cpython-34.pyc +    │   ​├── urls.cpython-34.pyc 
-    │   └── wsgi.cpython-34.pyc+    │   ​└── wsgi.cpython-34.pyc
     ├── settings.py     ├── settings.py
     ├── urls.py     ├── urls.py
Ligne 446: Ligne 446:
 </​code>​ </​code>​
  
-  * À savoir : La commande "​makemigrations"​ permet de mettre à jour les polls.  ​+  * À savoir : La commande "​makemigrations"​ permet de mettre à jour les polls (sorte de script SQL), à partir d'un modèle s'il en existe (voir plus bas).  ​
  
 <code user>​python3 manage.py makemigrations</​code>​ <code user>​python3 manage.py makemigrations</​code>​
 <code retour>​No changes detected</​code>​ <code retour>​No changes detected</​code>​
  
-**Mais si l'on a crée des modèles, par exemple ​dans le répertoire "​~/​Bureau/​PremiersProjetsDjango/​premierProjet"​ :**+</​note>​ 
 + 
 +===Création de Modèle (c'est presque du code first !)=== 
 + 
 +  * On se place dans le répertoire "​~/​Bureau/​PremiersProjetsDjango/​premierProjet"​ : 
 +<code user>cd ~/​Bureau/​PremiersProjetsDjango/​premierProjet</​code>​ 
 + 
 +  ​On utilise manage.py pour créé l'​arborescence nécessaire à l'​utilisation de Modèle :
  
 <code user>​python3 manage.py startapp polls</​code>​ <code user>​python3 manage.py startapp polls</​code>​
 +
 +Cela a crée le répertoire polls à la racine du dossier consacré au projet django :
 +
 +<code user>​pwd</​code>​
 +<​code>/​home/​hypathie/​Bureau/​PremiersProjetsDjango/​premierProjet</​code>​
 +
 +<code user>​tree</​code>​
 +<​code>​
 +.
 +├── db.sqlite3
 +├── manage.py
 +├── polls
 +│   ​├── admin.py
 +│   ​├── apps.py
 +│   ​├── __init__.py
 +│   ​├── migrations
 +│   ​│ ​  ​├── 0001_initial.py
 +│   ​│ ​  ​├── __init__.py
 +│   ​│ ​  ​└── __pycache__
 +│   ​│ ​      ​├── 0001_initial.cpython-34.pyc
 +│   ​│ ​      ​└── __init__.cpython-34.pyc
 +│   ​├── models.py
 +│   ​├── __pycache__
 +│   ​│ ​  ​├── admin.cpython-34.pyc
 +│   ​│ ​  ​├── __init__.cpython-34.pyc
 +│   ​│ ​  ​└── models.cpython-34.pyc
 +│   ​├── tests.py
 +│   ​└── views.py
 +└── premierProjet
 +    ├── __init__.py
 +    ├── __pycache__
 +    │   ​├── __init__.cpython-34.pyc
 +    │   ​├── settings.cpython-34.pyc
 +    │   ​├── urls.cpython-34.pyc
 +    │   ​└── wsgi.cpython-34.pyc
 +    ├── settings.py
 +    ├── urls.py
 +    └── wsgi.py
 +</​code>​
 +
 +  * On crée des Modèles dans le fichier models.py :
 +
 <code user>vim polls/​models.py</​code>​ <code user>vim polls/​models.py</​code>​
-<code+<file > 
 +import datetime 
 from django.db import models from django.db import models
 +from django.utils import timezone
  
 +# Create your models here.
  
 class Question(models.Model):​ class Question(models.Model):​
     question_text = models.CharField(max_length=200)     question_text = models.CharField(max_length=200)
     pub_date = models.DateTimeField('​date published'​)     pub_date = models.DateTimeField('​date published'​)
 +    def __str__(self):​
 +        return self.question_text
 +    def was_published_recently(self):​
 +        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
  
  
Ligne 468: Ligne 525:
     choice_text = models.CharField(max_length=200)     choice_text = models.CharField(max_length=200)
     votes = models.IntegerField(default=0)     votes = models.IntegerField(default=0)
 +    def __str__(self):​
 +        return self.choice_text
 +</​file>​
  
-</​code>​ +  ​Cette fois la commande "​makemigrations"​ ci-dessous, va créer un script de type SQL de creation et/ou mise à jour de la base de données associées au projet, par défaut ce script est le fichier "​polls/​migrations/​0001_initial.py"​ :
-** +
-alors la commande "​makemigrations"​ ci-dessous, va créer un script de type SQL de creation et/ou mise à jour de la base de données associées au projet, par défaut ce script est le fichier "​polls/​migrations/​0001_initial.py"​ :**+
  
 <code user>​python3 manage.py makemigrations polls</​code>​ <code user>​python3 manage.py makemigrations polls</​code>​
Ligne 483: Ligne 541:
  
  
-  * L'ORM de Django permet de générer un script de création de base de données avec tables, noms et types des champs, clés primaires et cardinalités ​pour voir le script créé à partir des Modèles python (classe):+  * L'ORM de Django permet de générer un script de création de base de données avec tables, noms et types des champs, clés primaires et cardinalités...\\ Pour voir le script créé à partir des Modèles python (classe):
  
 <code user>​python3 manage.py sqlmigrate polls 0001</​code>​ <code user>​python3 manage.py sqlmigrate polls 0001</​code>​
  
   * Mais c'est la commande suivante qui applique les changements apportés aux Models dans la base de données :   * Mais c'est la commande suivante qui applique les changements apportés aux Models dans la base de données :
 +
 <code user>​python3 manage.py migrate</​code> ​ <code user>​python3 manage.py migrate</​code> ​
  
Ligne 496: Ligne 555:
   * Explication sur API : http://​sametmax.com/​quest-ce-quune-api/​   * Explication sur API : http://​sametmax.com/​quest-ce-quune-api/​
  
-**Pour utiliser l'API Django depuis un shell python :**+  ​* Pour utiliser l'API Django depuis un shell python :
  
 <code user>​python3 manage.py shell</​code>​ <code user>​python3 manage.py shell</​code>​
 +
   * Pour s'​exercer : https://​docs.djangoproject.com/​fr/​1.8/​intro/​tutorial01/#​playing-with-the-api   * Pour s'​exercer : https://​docs.djangoproject.com/​fr/​1.8/​intro/​tutorial01/#​playing-with-the-api
  
-</​note>​ 
  
 === Création d'un administrateur Django=== === Création d'un administrateur Django===
Ligne 546: Ligne 605:
 {{http://​pix.toile-libre.org/​upload/​original/​1449161189.png}} {{http://​pix.toile-libre.org/​upload/​original/​1449161189.png}}
  
-===== Utilisation =====+  * 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>Pour passer de l'​explorateur NERD Tree à la fenêtre d'​édition des fichiers : Ctrl +w puis w.</​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>​
 +
 +</​note>​
  
 +===== Configurations et installation de Django avec PostgreSQL=====
utilisateurs/hypathie/tutos/developpement-pyhon-utiliser-django.txt · Dernière modification: 06/01/2016 10:18 par Hypathie

Pied de page des forums

Propulsé par FluxBB