Skip to content

Instantly share code, notes, and snippets.

@Khoding
Last active June 8, 2021 11:31
Show Gist options
  • Save Khoding/e998f7ae5f561acc97e4d4257f03163f to your computer and use it in GitHub Desktop.
Save Khoding/e998f7ae5f561acc97e4d4257f03163f to your computer and use it in GitHub Desktop.
Des trucs utiles pour Django

Deux trois pro tip pour Django sur VSCode

Extensions:

Python Pylance Django

(Si vous voulez Djaneiro ou d'autres du genre mais ces trois là vont bien)

A mettre dans le settings.json de VSCode (f1 -> Preferences: Open Settings (JSON))

/// Pour avoir l'autocompletion dans les templates
"files.associations": {
        "*.py": "python",
        "**/*.html": "html",
        "**/templates/**/*.html": "django-html",
        "**/templates/**/*": "django-txt",
        "**/requirements{/**,*}.{txt,in}": "pip-requirements"
    },
/// Pour avoir Emmet dans les templates (div.container --> <div class="container"></div>)
"emmet.showSuggestionsAsSnippets": true,
    "emmet.triggerExpansionOnTab": true,
    "emmet.includeLanguages": {
        "javascript": "javascriptreact",
        "django-html": "html"
    },

Liens utiles

https://blog.khodok.xyz/ (Mon site pour des examples de trucs faisables en Django) https://www.djangoproject.com/en/stable/ (La doc de Django (en version stable, donc la dernière officielle), elle est supra complète donc lisez la quand vous avez besoin d'aide) https://tutorial.djangogirls.org/en/ (Le meilleur site pour apprendre les bases de Django selon beaucoup) https://learndjango.com/ (Un site par l'un des Djangofellows (des membres de l'administration Django), a pas mal de bon tutos) https://github.com/wsvincent/awesome-django (Une liste épurée de bons liens à propos de Django (packages, tutos, best practice, etc)) https://djangopackages.org/ (Un site avec des packages (ou reusable apps en Django) Django)

Commandes de base

  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py createsuperuser
  • python manage.py runserver

Best practices

Models

https://steelkiwi.com/blog/best-practices-working-django-models-python/

  • Constantes (pour les choices par example)
  • Les fields
  • Custom managers
  • class meta
  • def unicode (python 2) or def str (python 3)
  • Autres trucs du même genre
  • def clean
  • Autres types de clean methods (rare)
  • def save
  • Autres types de save methods (rare)
  • def get_absolut_url
  • Autres types de méthodes pour des urls absolus (les définir ici est bon pour rester DRY à la place d'utilise le templatetag url tout le temps)
  • Autre méthodes et properties

Properties et Managers

Properties

Les properties sont juste des champs calculés (age par exemple), il sont basés sur des données du modèles mais ne sont normalement jamais affichés, en calculant l'âge d'un truc en se basant sur un champ date on peut ensuite l'afficher juste en l'appelant ou même le mettre dans une liste d'élément de l'admin)

Managers

Les Managers sont avancés mais utiles, ils permettent de redéfinir objects (self.model.objects.all()), ou d'y rajouter des querysets plus complets. Ils font ce qu'on fait souvent dans les views, mais le font directement sur la DB (donc les requêtes sont beaucoup plus optimisées) Ils sont souvent nommés objects parce que ça change pas grand chose en soit (le queryset par défaut est rarement modifié, même si en soit on peut le remodifier dans un manager, il faudrait éviter, et plutôt rajouter des éléments en plus) Ils permettent de rendre le code plus DRY, et aussi d'optimiser le tout, c'est pas obligatoire, mais si vous voulez vous y intéresser checkez sur la doc en cherchant Managers ou sur google)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment