Dépot Copyright

 CopyrightFrance.com

Cours Python

  1. Introduction à Python
  2. Ide Python
  3. Premier programme Python
  4. Les variables en Python
  5. Les commentaires en Python
  6. Les opérateurs Python
  7. Les fonctions en Python
  8. Structure If else... Python
  9. For While Python
  10. Formatage des chaines Python
  11. Les listes en Python
  12. Les tuples en Python
  13. Les dictionnaires en Python
  14. Les ensembles en Python
  15. POO et classes en Python
  16. Héritage en Python
  17. Les exceptions en Python
  18. Le gestionnaire des packages pip
  19. Télécharger le cours complet
  20. Les modules en Python
  21. Le module OS
  22. Module datetime Python
  23. Le module Platform
  24. Le module virtualenv
  25. Le Module PyInstaller
  26. Les fichiers en Python
  27. Les fichiers ouverture & lecture
  28. Les fichiers ouverture & écriture
  29. Les fichiers CSV en Python
  30. Les Fichiers JSON En Python
  31. Fichier de configuration .ini
  32. Python & SQLite database
  33. DB Browser for SQLite
  34. Interface Graphique Tkinter
  35. Les Windgets Tkinter
  36. Bibliothèque d'images PILLOW
  37. Module de style tkinter.ttk
  38. Liste déroulante ttk Combobox
  39. le module filedialog
  40. Projet: Création éditeur de texte
  41. Bibliothèque graphique wxPython
  42. Bibliothèque graphique PyQt5
  43. Télécharger le cours complet
  44. Le module Math
  45. La bibliothèque matplotlib
  46. Le module Python statistics
  47. Bibliothèque Sympy
  48. Bibliothèques Numpy
  49. Bibliothèques Scipy
  50. Bibliothèques Pandas
  51. Bibliothèques Scikit Learn
  52. Bibliothèques TensorFlow
  53. Python Machine Learning
  54. Introduction à Django
  55. Installation de Django
  56. Premier Projet Django
  57. Interface administrateur
  58. Créer une application django
  59. Les modèles de django
  60. Templates Django
  61. Les formulaires Django
  62. Fichiers Statiques Django
  63. Upload des fichiers django
  64. Exercices Python: les bases
  65. Exercices Python: les classes
  66. Exercices Python: les fichiers
  67. Tous les TP Python
  68. Création Editeur de Texte en Python Partie1
  69. Carnet d'adresse en Python
  70. Formation Python-partie1

Utilisateurs en ligne

Users: 21 Guests, 4 Bots

Annonces Google

1 – A propos des modèles Django

Afin d’organiser les données du stockage de votre app, django vous offre l’outil nommé modèle (django model).

  1. Un modèle abrite sous forme des classes les noms des tables et des champs (attributs) des données du stockage.
  2. Chaque modèle correspond à une seule table de base de données.
  3. Chaque modèle est une classe Python qui hérite de django.db.models.Model.
  4. Chaque attribut du modèle représente un champ de base de données.

2 –  Les différents types de champs dans un modèle django

Django modèle fourni une variété de types de champs:

  1. AutoField : designe un champ du type entier qui s’incrémente automatiquement.
  2. BigAutoField : il s’agit d’un entier 64 bits, un peu comme un AutoField, sauf qu’il est garanti qu’il peut contenir des nombres de 1 à 9223372036854775807.
  3. BigIntegerField : il s’agit d’un entier 64 bits, un peu comme un IntegerField, sauf qu’il est garanti qu’il s’adapte aux nombres de -9223372036854775808 à 9223372036854775807.
  4. BinaryField : un champ pour stocker des données binaires brutes.
  5. BooleanField : un champ vrai / faux. Le widget de formulaire par défaut pour ce champ est un CheckboxInput.
  6. CharField : il s’agit d’un champ de texte destiné au stockage des petites chaines de caractères.
  7. DateTimeField : il s’agit d’une date, représentée en Python par une instance datetime.date.
  8. DecimalField : il s’agit d’un nombre décimal à précision fixe, représenté en Python par une instance Decimal.
  9. DurationField : un champ pour stocker des périodes de temps.
  10. EmailField : il s’agit d’un CharField qui vérifie que la valeur est une adresse e-mail valide.
  11. FileField : il s’agit d’un champ de téléchargement de fichiers.
  12. FloatField : il s’agit d’un nombre à virgule flottante représenté en Python par une instance flottante.
  13. ImageField : il hérite de tous les attributs et méthodes de FileField, mais exige également que l’objet téléchargé soit une image valide.
  14. IntegerField : il s’agit d’un champ entier. Les valeurs de -2147483648 à 2147483647 sont sûres dans toutes les bases de données prises en charge par Django.
  15. NullBooleanField : comme un BooleanField, mais autorise NULL comme l’une des options.
  16. PositiveIntegerField : comme un IntegerField, mais doit être positif ou nul (0). Les valeurs de 0 à 2147483647 sont sûres dans toutes les bases de données prises en charge par Django.
  17. SmallIntegerField : comme un IntegerField, mais n’autorise que les valeurs sous un certain point (dépendant de la base de données).
  18. TextField : un large champ de texte. Le widget de formulaire par défaut pour ce champ est une zone de texte.
  19. TimeField : un champ qui représente l’heure, représentée en Python par une instance datetime.time.

3 – Création d’un modèle Django

Avant de passer à la création d’un modèle, il faut au préalable enregistrer votre app:

Ajoutez votre app au fichier mysite/settings.py:

INSTALLED_APPS = [
    'myapp.apps.MyappConfig',
    ########,
    ########,
]

En voici un exemple permettant de créer un modèle nommé Students possédant les champs : firstName, lastName, email et adress:

Ajouter le code ci-dessous au fichier myapp/models.py

class Students(models.Model):  
    name        = models.CharField(max_length=25)      
    email       = models.EmailField(max_length=40)  
	phone    = models.IntegerField(max_length=40)
    section      = models.CharField(max_length=25)

Ceux-ci créera une table SQLite formée des champs : firstName, lastName, email et adress, mais pas avant que les migrations nécessaires soient crées:

A ce effet, exécuter en ligne de commande:

python manage.py makemigrations myapp

et ensuite :

python manage.py migrate

4 – Ajouter le modèle à la zone admin

Afin de pouvoir gérer le modèle qu’on vient de créer il est donc nécessaire de le charger dans la zone admin du site. Pour ce faire, il suffit d’éditer le fichier myapp/admin.py en ajoutant les lignes de codes:

myapp/admin.py
from django.contrib import admin
from .models import Students
admin.site.register(Students)

Si vous accéder maintenant à la zone admin du site, vous trouver la rubrique Students, qui vous donne la possibilité d’édition et de modification:

5 – Amélioration de l’affichage au niveau de la zone admin

Nous pouvons maintenant améliorer l’affichage des enregistrements au niveau de la zone admin en affichant la liste des noms, des emails, des sections… A cet effet nous devons importer le module admin depuis django.contrib sur le fichier models.py:

from django.contrib import admin

On crée ensuite une classe  au sein du fichier models.py  qui hérite de la classe admin.ModelAdmin qui permet  d’indiquer la liste des attributs à afficher et les attributs selon lesquels s’effectue le filtrage des enregistrements:

models.py
class StudentsAdmin(admin.ModelAdmin):
    list_display = ('name' , 'email' ,  'section')
    list_filter = ('name',)

Voici le code final du fichier models.py

models.py
from django.contrib import admin
class Students(models.Model):
    name     = models.CharField(max_length=25)
    email    = models.EmailField(max_length=40)
    phone    = models.IntegerField(max_length=40)
    section  = models.CharField(max_length=25)

class StudentsAdmin(admin.ModelAdmin):
    list_display = ('name' , 'email' ,  'section')
    list_filter = ('name',)

Il reste maintenant quelques modifications au niveau du fichiers admin.py au sein duquel on doit importer et enregistrer la classe StudentsAdmin qu’on vient de créer:

admin.py
from django.contrib import admin
from studentsApp.models import Students , StudentsAdmin

admin.site.register(Students , StudentsAdmin)

Et finalement en accédant à la zone admin on s’aperçoit qu’il y a effectivement amélioration de l’affichage des résultats faisant apparaitre la liste des noms, des eamils, des sections…

django-contrib-model-admin

 

Younes Derfoufi
CRMEF OUJDA

Une réponse à Les modèles de django

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload the CAPTCHA.