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 14:23] Hypathie [Avant de commencer] |
utilisateurs:hypathie:tutos:developpement-pyhon-utiliser-django [08/12/2015 15:27] Hypathie [Créer des projets Django en python2 ou python3] |
||
---|---|---|---|
Ligne 67: | Ligne 67: | ||
- | ===== Configurations et installation de Django avec SQLite3===== | + | ===== Créer des projets Django en python2 ou python3===== |
+ | |||
+ | ===Les versions de python sur sa Jessie === | ||
+ | |||
+ | <code user> ls /usr/bin/python*</code> | ||
+ | <code retour> | ||
+ | /usr/bin/python /usr/bin/python3 /usr/bin/python3-config | ||
+ | /usr/bin/python2 /usr/bin/python3.4 /usr/bin/python3m | ||
+ | /usr/bin/python2.7 /usr/bin/python3.4-config /usr/bin/python3m-config | ||
+ | /usr/bin/python2.7-config /usr/bin/python3.4m /usr/bin/python-config | ||
+ | /usr/bin/python2-config /usr/bin/python3.4m-config | ||
+ | </code> | ||
+ | |||
+ | <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. \\ | ||
+ | |||
+ | Pour ce faire, on va créer un environnement virtuel dans un dossier créé dans le repertoire 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. \\ | ||
+ | |||
+ | 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. \\ | ||
+ | |||
+ | En effet : | ||
+ | |||
+ | <code user> | ||
+ | python --version | ||
+ | </code> | ||
+ | <code retour> | ||
+ | Python 3.4.2 | ||
+ | </code> | ||
+ | |||
+ | <code user>virtualenv MonPy3Django -p /usr/bin/python3.4</code> | ||
+ | <code user>cd MonPy3Django/</code> | ||
+ | <code user>source bin/activate 1.8-3.4</code> | ||
+ | <code retour>Downloading/unpacking django | ||
+ | Downloading Django-1.9-py2.py3-none-any.whl (6.6MB): 6.6MB downloaded | ||
+ | Installing collected packages: django | ||
+ | *** Error compiling '/tmp/pip-build-c20d1nfa/django/django/conf/app_template/apps.py'... | ||
+ | File "/tmp/pip-build-c20d1nfa/django/django/conf/app_template/apps.py", line 4 | ||
+ | class {{ camel_case_app_name }}Config(AppConfig): | ||
+ | ^ | ||
+ | SyntaxError: invalid syntax | ||
+ | |||
+ | *** Error compiling '/tmp/pip-build-c20d1nfa/django/django/conf/app_template/models.py'... | ||
+ | File "/tmp/pip-build-c20d1nfa/django/django/conf/app_template/models.py", line 1 | ||
+ | {{ unicode_literals }}from django.db import models | ||
+ | ^ | ||
+ | SyntaxError: invalid syntax | ||
+ | |||
+ | Successfully installed django | ||
+ | Cleaning up... | ||
+ | </code> | ||
+ | |||
+ | :-/ | ||
+ | |||
+ | <code user>rm -r ~/MonPy3Django</code> | ||
+ | |||
+ | </note> | ||
==== Installer pyenv==== | ==== Installer pyenv==== | ||
Ligne 108: | Ligne 166: | ||
3.4.3</code> | 3.4.3</code> | ||
| | ||
- | * les commandes pyenv | + | ===Quelques commandes pyenv=== |
- | + | ||
- | <code user>pyenv +lacommande</code> | + | |
* Avoir une liste des commandes pyenv | * Avoir une liste des commandes pyenv | ||
Ligne 129: | Ligne 185: | ||
</code> | </code> | ||
- | * Configurer la version du shell pyenv pour choisir sa version de python | + | * Comment lancer une commande pyenv |
- | - Pour que le shell utilise la version 2 installée plutôt | + | |
+ | <code user>pyenv +lacommande</code> | ||
+ | |||
+ | * 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) | ||
<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 142: | Ligne 203: | ||
<code user>/home/hypathie/.pyenv/shims/python</code> | <code user>/home/hypathie/.pyenv/shims/python</code> | ||
- | - Pour changer de version de python pour l'environnement virtuel, on fait la même chose avec la version 3 | + | - Pour que le shell de pyenv utilise 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 235: | Ligne 296: | ||
</code> | </code> | ||
- | **Ces fichiers sont :** | + | <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 ! \\ | ||
- | * __premierProjet/__ c'est le répertoire racine qui est le contenant du projet nouvellement créé. | + | https://docs.djangoproject.com/fr/1.8/intro/tutorial01/ \\ |
- | * __manage.py__ est un utilitaire en ligne de commande qui vous permet d’interagir avec ce projet Django de différentes façons. Vous trouverez toutes les informations nécessaires sur manage.py dans django-admin et manage.py. | + | que je vais résumer dans ce qui suit ! |
- | * Le sous-répertoire __premierProjet/__ correspond au paquet Python effectif de votre projet. C’est le nom du paquet Python que vous devrez utiliser pour importer ce qu’il contient. | + | </note> |
- | + | ||
- | * __premierProjet/__init__.py__ : un fichier vide qui indique à Python que ce répertoire doit être considéré comme un paquet (lisez informations sur les paquets (en) dans la documentation officielle de Python si vous êtes débutant avec ce langage). | + | |
- | + | ||
- | * __premierProjet/settings.py__ : réglages et configuration de ce projet Django. Les réglages de Django vous apprendra tout sur le fonctionnement des réglages. | + | |
- | + | ||
- | * __premierProjet/urls.py__ : les déclarations des URL de ce projet Django, une sorte de « table des matières » de votre site Django. Vous pouvez en lire plus sur les URL dans Distribution des URL. | + | |
- | * __premierProjet/wsgi.py__ : un point d’entrée pour les serveurs Web compatibles WSGI pour déployer votre projet. Voir Comment déployer avec WSGI pour plus de détails. | ||
- | |||
- | Pour plus de détails voir la doc officielle de Django : https://docs.djangoproject.com/fr/1.8/intro/tutorial01/ | ||
=== Premier test=== | === Premier test=== | ||
Ligne 259: | Ligne 312: | ||
<code user>cd ~/Bureau/PremiersProjetsDjango/premierProjet/</code> | <code user>cd ~/Bureau/PremiersProjetsDjango/premierProjet/</code> | ||
- | <code user>python3 manage.py runserver</code> | + | * On met à jour la base de donnée : |
- | <code retour> | + | <code user>python manage.py migrate</code> |
- | Performing system checks... | + | |
- | System check identified no issues (0 silenced). | + | <code user>python manage.py runserver</code> |
- | You have unapplied migrations; your app may not work properly until they are applied. | ||
- | Run 'python manage.py migrate' to apply them. | ||
- | |||
- | December 03, 2015 - 12:43:53 | ||
- | Django version 1.9, using settings 'premierProjet.settings' | ||
- | Starting development server at http://127.0.0.1:8000/ | ||
- | Quit the server with CONTROL-C. | ||
- | </code> | ||
- | |||
- | <note> | ||
- | Rien de grave dans ce retour. | ||
- | Django prévient qu'aucune base de données n'a été migrée. | ||
- | Ce n'est pas important pour ce premier test. | ||
- | </note> | ||
* Depuis son navigateur on entre dans la barre url: "http://localhost:8000/" | * Depuis son navigateur on entre dans la barre url: "http://localhost:8000/" | ||
Ligne 287: | Ligne 325: | ||
{{http://pix.toile-libre.org/upload/img/1449147148.png}}\\ | {{http://pix.toile-libre.org/upload/img/1449147148.png}}\\ | ||
- | ====Premier projet avec la base de données sqlite3==== | + | <note tip> |
+ | Notre avantage, on aurrait pu aussi bien lancer à la place des deux commandes précédentes : | ||
+ | |||
+ | <code user>python3 manage.py migrate</code> | ||
+ | |||
+ | <code user>python3 manage.py runserver</code> | ||
+ | |||
+ | 8-) | ||
+ | |||
+ | </note> | ||
+ | =====Premier projet avec la base de données sqlite3===== | ||
* Par défaut, Django utilise la base de donnée sqlite3 : | * Par défaut, Django utilise la base de donnée sqlite3 : |