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 [03/12/2015 17:47]
Hypathie [Mise en place d'un environnement minimal pour utiliser Django]
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [05/12/2015 08:02]
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 222: Ligne 221:
 wheel==0.24.0 wheel==0.24.0
 </​code>​ </​code>​
 +
 +  * **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 377: 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 417: 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 427: Ligne 429:
  
 <note tip> <note tip>
-Le fichier de base de données SQLite3 a été créé a la racine : "​db.sqlite3"​. 
  
-  * À savoir ​:+L'​exécution de la commande "​manage.py migrate"​ a permis ​:
  
-La commande ​:+  * de créer à la racine le fichier de base de données nommé par défaut "​db.sqlite3";​ 
 +  * elle a ajouté au fichier "​settings.py " dans la section "​INSTALLED_APPS"​ la ligne : '​polls',​ 
 +<code retour>​ 
 +INSTALLED_APPS = ( 
 +    '​django.contrib.admin',​ 
 +    '​django.contrib.auth',​ 
 +    '​django.contrib.contenttypes',​ 
 +    '​django.contrib.sessions',​ 
 +    '​django.contrib.messages',​ 
 +    '​django.contrib.staticfiles',​ 
 +    '​polls',​ 
 +
 +</​code>​ 
 + 
 +  * À 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>​
- 
-permet de recharger les modifications. 
  
 </​note>​ </​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>​
 +
 +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>​
 +<file >
 +import datetime
 +
 +from django.db import models
 +from django.utils import timezone
 +
 +# Create your models here.
 +
 +class Question(models.Model):​
 +    question_text = models.CharField(max_length=200)
 +    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)
 +
 +
 +class Choice(models.Model):​
 +    question = models.ForeignKey(Question)
 +    choice_text = models.CharField(max_length=200)
 +    votes = models.IntegerField(default=0)
 +    def __str__(self):​
 +        return self.choice_text
 +</​file>​
 +
 +  * 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"​ :
 +
 +<code user>​python3 manage.py makemigrations polls</​code>​
 +
 +<​code>​Migrations for '​polls':​
 +  0001_initial.py:​
 +    - Create model Choice
 +    - Create model Question
 +    - Add field question to choice</​code>​
 +
 +
 +
 +  * 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>​
 +
 +  * 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> ​
 +
 +  * Il est ensuite possible d'​interroger la base de donnée depuis le shell en utilisant les méthodes du Modèle ​
 +  * Sur "​migrate"​ :  https://​docs.djangoproject.com/​fr/​1.8/​intro/​tutorial01/#​database-setup ​
 +  * Sur "​manage.py"​ : https://​docs.djangoproject.com/​fr/​1.8/​ref/​django-admin/​
 +  * Explication sur ORM : http://​apprendre-python.com/​page-django-orm-apprendre-base-donnees-database-queryset-modeles
 +  * Explication sur API : http://​sametmax.com/​quest-ce-quune-api/​
 +
 +  * Pour utiliser l'API Django depuis un shell python :
 +
 +<code user>​python3 manage.py shell</​code>​
 +
 +  * Pour s'​exercer : https://​docs.djangoproject.com/​fr/​1.8/​intro/​tutorial01/#​playing-with-the-api
 +
  
 === Création d'un administrateur Django=== === Création d'un administrateur Django===
Ligne 483: 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 : 
 + 
 + 
 + 
 +  * On installe pathogen 
 + 
  
  
 +===== 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