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 [15/12/2015 07:48] Hypathie [Créer des projets Django en python2 ou python3] |
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [16/12/2015 07:17] Hypathie [Créer des projets Django en python2 ou python3] |
||
---|---|---|---|
Ligne 74: | Ligne 74: | ||
===== Créer des projets Django en python2 ou python3===== | ===== Créer des projets Django en python2 ou python3===== | ||
- | ===Les versions de python sur sa Jessie === | + | ===Les versions de python sur sa Jessie=== |
<code user> ls /usr/bin/python*</code> | <code user> ls /usr/bin/python*</code> | ||
Ligne 84: | Ligne 84: | ||
/usr/bin/python2-config /usr/bin/python3.4m-config | /usr/bin/python2-config /usr/bin/python3.4m-config | ||
</code> | </code> | ||
+ | |||
+ | ===Problème avec python pour utiliser virtualenv=== | ||
<note tip> | <note tip> | ||
Ligne 282: | Ligne 284: | ||
<code user>pyenv activate 1.8-3.4</code> | <code user>pyenv activate 1.8-3.4</code> | ||
+ | Le prompt de terminal a changé, il devient quelque chose comme cela : | ||
+ | <code>(1.8-3.4) hypathie@debian:~/ProjetsDjangoPy3/premierProjet$</code> | ||
</note> | </note> | ||
Ligne 303: | Ligne 307: | ||
<note tip> | <note tip> | ||
- | * Et voilà, partir de là, on retombe sur nos pattes | + | **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 ! \\ | + | |
+ | 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/ | ||
* A chaque fois que l'on veut reprendre l'avancement de son projet | * A chaque fois que l'on veut reprendre l'avancement de son projet | ||
Ligne 311: | Ligne 316: | ||
<code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | <code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | ||
- | * On active pyenv | + | * On active pyenv pour utiliser l'interpréteur python |
<code user>pyenv activate 1.8-3.4</code> | <code user>pyenv activate 1.8-3.4</code> | ||
- | |||
- | * On peut alors suivre les commandes indiquée par le site officiel de Django \\ https://docs.djangoproject.com/fr/1.8/intro/tutorial01/ | ||
* Pour tester | * Pour tester | ||
Ligne 325: | Ligne 328: | ||
<code user>python3 manage.py runserver</code> | <code user>python3 manage.py runserver</code> | ||
- | * On inscrit dans son navigateur on entre dans la barre url: "http://localhost:8000/" | + | * On inscrit dans son navigateur l'url: "http://localhost:8000/" |
Et on obtient : | Et on obtient : | ||
{{http://pix.toile-libre.org/upload/img/1449147148.png}}\\ | {{http://pix.toile-libre.org/upload/img/1449147148.png}}\\ | ||
+ | |||
+ | * Pour arrêter le serveur : | ||
+ | <code user>ctrl+c</code> | ||
+ | |||
+ | * Pour sortir de l'interpréteur python du shell pyenv | ||
+ | <code user>pyenv deactivate</code> | ||
</note> | </note> | ||
- | ====Un petit résumer ==== | + | =====Résumer des fichiers de configuration et commandes "manage.py" ===== |
===Le fichier ''settings.py'' : pour associer une BDD au projet === | ===Le fichier ''settings.py'' : pour associer une BDD au projet === | ||
Ligne 390: | Ligne 399: | ||
</code> | </code> | ||
- | Cela permettra de générer des scripts de type sql correspondant aux entités de la base de données. | + | Comme ceci : |
<code retour> | <code retour> | ||
Ligne 403: | Ligne 412: | ||
) | ) | ||
</code> | </code> | ||
+ | - Cela dit à Django de générer de fichier de scripts (en sql) correspondant aux entités de la base de données : \\ Voir le paragraphe https://debian-facile.org/utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django?&#la-commande-managepy-makemigrations | ||
+ | - Cela dit à Django de créer une arborescence de fichiers pour créer des Modèles : \\ Voir le paragraphe création de modèle : https://debian-facile.org/utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django#le-fichier-modelspy-pour-coder-des-modeles | ||
+ | |||
+ | ===Commande manage.py startapp polls : créer les fichiers pour coder en python des Modèles=== | ||
+ | |||
+ | * Toujours à la racine du projet Django pour utiliser manage.py | ||
+ | |||
+ | <code user>cd ~/ProjetsDjangoPy3/premierProjet</code> | ||
+ | |||
+ | * Si on est sorti du shell pyenv | ||
+ | |||
+ | <code>pyenv activate 1.8-3.4</code> | ||
+ | |||
+ | <code user>python manage.py startapp polls</code> | ||
+ | |||
+ | <note> | ||
+ | |||
+ | * On remarque que l'arborescence a changé : | ||
+ | |||
+ | Cela a crée le répertoire polls à la racine du dossier consacré au projet django : | ||
+ | |||
+ | <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> | ||
+ | |||
+ | </note> | ||
+ | |||
+ | |||
===Commande de création de Modèles : manage.py migrate=== | ===Commande de création de Modèles : manage.py migrate=== | ||
Ligne 457: | Ligne 524: | ||
<code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | <code user>cd ~/ProjetsDjangoPy3/premierProjet/</code> | ||
+ | <code user>pyenv activate 1.8-3.4</code> | ||
<code user>python manage.py makemigrations</code> | <code user>python manage.py makemigrations</code> | ||
<code retour>No changes detected</code> | <code retour>No changes detected</code> | ||
+ | ===Le fichier models.py pour coder des Modèles === | ||
+ | C'est là qu'on code des Modèles en python : | ||
- | + | <code user>cd ~/ProjetsDjangoPy3/premierProjet/ && pyenv activate 1.8-3.4</code> | |
- | + | ||
- | + | ||
- | ====Création de Modèle==== | + | |
- | + | ||
- | C'est presque du code first ! LOL | + | |
- | + | ||
- | * On se place dans le répertoire "~/ProjetsDjangoPy3/premierProjet" : | + | |
- | <code user>cd ~/ProjetsDjangoPy3/premierProjet</code> | + | |
- | + | ||
- | * On utilise manage.py pour créé l'arborescence nécessaire à l'utilisation de Modèle : | + | |
- | + | ||
- | <code user>python manage.py startapp polls</code> | + | |
- | + | ||
- | <note> | + | |
- | + | ||
- | * On remarque que l'arborescence a changé : | + | |
- | + | ||
- | Cela a crée le répertoire polls à la racine du dossier consacré au projet django : | + | |
- | + | ||
- | <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> | + | |
- | + | ||
- | </note> | + | |
- | + | ||
- | + | ||
- | * 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> | ||
Ligne 548: | Ligne 561: | ||
</file> | </file> | ||
- | * On édite encore une fois le fichier ''settings.py'' pour ajouter '''polls','' la section ''INSTALLED_APPS'' | ||
- | <code user>vim premierProjet/settings.py</code> | + | * Cette fois la commande "makemigrations" 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> | + | |
- | ... | + | |
- | INSTALLED_APPS = [ | + | |
- | 'django.contrib.admin', | + | |
- | 'django.contrib.auth', | + | |
- | 'django.contrib.contenttypes', | + | |
- | 'django.contrib.sessions', | + | |
- | 'django.contrib.messages', | + | |
- | 'django.contrib.staticfiles', | + | |
- | 'polls', | + | |
- | ] | + | |
- | ... | + | |
- | </code> | + | |
- | + | ||
- | * 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>python manage.py makemigrations polls</code> | <code user>python manage.py makemigrations polls</code> | ||
Ligne 581: | Ligne 578: | ||
<code user>python manage.py sqlmigrate polls 0001</code> | <code user>python 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 correspondants à ce script afin que les entités de la base de données soient l'image des classes du Modèle : |
<code user>python manage.py migrate</code> | <code user>python manage.py migrate</code> | ||
Ligne 591: | Ligne 588: | ||
* 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 : | + | |
+ | ===La commande "python manage.py shell" : pour interroger le Modèle et ses méthodes === | ||
+ | Si on a désactivé le shell pyenv et/ou qu'on est sorti du dossier pour Django : | ||
+ | |||
+ | <code user>cd ~/ProjetsDjangoPy3/premierProjet/ && pyenv activate 1.8-3.4</code> | ||
+ | |||
+ | Pour utiliser l'API Django depuis un shell python : | ||
<code user>python manage.py shell</code> | <code user>python manage.py shell</code> | ||
Ligne 618: | Ligne 621: | ||
- | ==== Création d'un administrateur Django==== | + | ===== Création d'un administrateur Django===== |
* On se place de le dossier de son projet Django : | * On se place de le dossier de son projet Django : |