Django

Rédigé par Paulo Aucun commentaire
Classé dans : Python Mots clés : aucun

Quelques notes Django : just for me !

Source : https://www.youtube.com/watch?v=ZkE1A2w0MAc
Auteur : Honoré Hounwanou

Gestion des modèles :
- showmigrations --> renvoit les migrations appliquées et non encore appliquées
- makemigrations --> génère les migrations
- migrate        --> applique les migrations

Django extensions :
https://github.com/django-extensions/django-extensions
- sudo pip3 install django-extensions
- à rajouter dans les INSTALLED_APPS (settings.py)
Nb : attention, on installe 'django-extensions' mais dans le settings.py il faut rajouter 'django_extensions' dans les apps
- nouvelles options du manage.py : show_urls, shell_plus (importe directement tous nos modèles)

Django-Debug-Toolbar :
https://github.com/jazzband/django-debug-toolbar
- sudo pip3 install django-debug-toolbar
- à rajouter dans les INSTALLED_APPS (debug_toolbar')
- à rajouter dans les MIDDLEWARE ('debug_toolbar.middleware.DebugToolbarMiddleware',)
- à rajouter à la fin de urls.py du projet 

 if settings.DEBUG:
        import debug_toolbar
            urlpatterns = [
            path('__debug__/', include(debug_toolbar.urls)),

            ] + urlpatterns

- importer la debug bar en début de urls.py du projet :
    from django.conf import settings
Nb : attention, il faut rajouter le include dans les import du debut de urls.py
    from django.conf.urls import url, include

Utilisation de models Django dans un script python 'standalone'
source : https://medium.com/getpy/using-django-models-in-a-standalone-python-script-839bc65d8cb9

 

Définiton des Relations dans les modèles :

  • Relations 'plusieurs-à-un' (django.db.models.ForeignKey)
    - une voiture possede un fabricant
    - un fabricant produit plusieurs voitures mais chaque voiture n'a qu'un seul fabricant
    from django.db import models
    
    class Manufacturer(models.Model):
        # ...
        pass
    
    class Car(models.Model):
        manufacturer = models.ForeignKey(Manufacturer, on_delete=models.CASCADE)
        # ...
    
  • Relations plusieurs à plusieurs (django.db.models.ManyToManyField)
    - une pizza comporte plusieurs objets garniture (Topping)
    - une garniture peut se trouver sur plusieurs pizza
    from django.db import models
    
    class Topping(models.Model):
        # ...
        pass
    
    class Pizza(models.Model):
        # ...
        toppings = models.ManyToManyField(Topping)
    
  • Relations un à un (OneToOneField)
    - un Ministre est à la tête d'un seul Ministère (...)
    - un Ministère est dirigé par un seul Ministre
    La table Ministéres est en relation 1:1 avec la table Ministre
    class Ministeres(models.Model):
    
        ...
    
        ministre = models.OneToOneField(Ministre)

    source : https://docs.djangoproject.com/fr/2.1/topics/db/models/
     

 

Les commentaires sont fermés.