1. Utilisez des chemins relatifs dans la configuration
Ne spécifiez pas de chemin absolu dans
settings.py
, cela sera utile si vous exécutez ultérieurement le projet à partir d'emplacements différents, par exemple, lors du déploiement sur un autre serveur Web avec des chemins différents. Utilisez le code suivant dans settings.py si vos modèles et fichiers statiques se trouvent dans le répertoire du projet Django:
# settings.py
import os
PROJECT_DIR = os.path.dirname(__file__)
...
STATIC_DOC_ROOT = os.path.join(PROJECT_DIR, "static")
...
TEMPLATE_DIRS = (
os.path.join(PROJECT_DIR, "templates"),
)
2. Utilisez la balise {% url%}
Au lieu de coder en dur vos liens, essayez d'utiliser une balise rétrocompatible
{% url %}
. Cela vous donnera une URL absolue, mais si le projet est déplacé, les liens resteront valides.
Fondamentalement, il
{% url %}
prend le nom de la vue et ses paramètres et effectue une recherche inversée pour renvoyer l'URL demandée. Si vous modifiez urls.py, les liens ne seront pas rompus.
3. Utilisez l'admin Django pour vos applications PHP
L'une des forces de Django est son système d'authentification des utilisateurs, qui est intégré au cœur de Django. Il est très facile à configurer et contient un système pratique pour l'autorisation de l'utilisateur et la configuration des paramètres nécessaires.
Ce système d'autorisation est si bon que beaucoup suggèrent de l'utiliser comme zone d'administration pour les applications PHP.
4. Utilisez un serveur distinct pour le traitement statique
Django vous permet d'héberger des fichiers statiques dans l'environnement de développement, mais pas dans votre environnement de production.
Django est conçu pour vous sauver de vous-même. Si vous essayez d'utiliser des fichiers statiques de la même instance Apache servant Django, vous perdrez des performances.
Apache réutilise les processus entre chaque requête, donc une fois qu'un processus a mis en cache tout le code et les bibliothèques de Django, ils restent en mémoire. Et si vous n'utilisez pas ce processus pour
traiter la requête de Django, toute cette mémoire sera gaspillée.
Si vous utilisez un serveur distinct (ou un hôte virtuel) pour la gestion statique, les performances de votre application ne seront pas affectées.
5. Utilisez la barre d'outils de débogage de Django.
Les outils de débogage sont inestimables dans toutes les langues. Ils accélèrent le processus de développement en aidant à trouver les bogues et les problèmes potentiels qui peuvent survenir.
La barre d'outils de débogage de Django vous permet de voir toutes les requêtes SQL exécutées pendant le rendu de la vue, et vous pouvez également afficher le stacktrace de chacune d'elles.
6. Tests unitaires Django
Les tests unitaires sont un bon moyen de garantir que les modifications de votre code fonctionnent comme prévu et n'interrompent pas le code précédent. L'un des avantages de Django est que l'écriture de tests unitaires est incroyablement facile. Django offre la possibilité d'utiliser doctest ou unittest hors de la boîte, et la documentation de Django contient d'excellents tutoriels et exemples de code sur la façon de configurer des tests unitaires pour rendre la recherche de bogues encore plus facile.
7. Visualisation des modèles
Installez les extensions de commande Django et pygraphviz, puis utilisez la commande suivante pour obtenir une belle visualisation des modèles de projet dans Django:
./manage.py graph_models -a -g -o my_project.png
8. Virtualenv
Virtualenv + Python = baguette magique. Virtualenv isolera les paramètres Python / Django pour chaque projet individuel. Cela signifie que les modifications apportées à un site n'affecteront pas les autres sites. Cela peut également être utile lorsque différentes versions de Django ou de python doivent être conservées sur le serveur.
9. Utilisez Memcache
Lorsque de mauvaises performances peuvent être un problème, vous souhaiterez probablement installer une sorte de système de mise en cache. Django offre de nombreuses options de mise en cache, mais memcached est de loin la meilleure.
L'installation et l'utilisation de memcached sont faciles si vous utilisez le module cmemcache. Une fois le module installé, vous devez ajouter une ligne à la configuration pour rendre vos pages encore plus rapides.
10. Chargement automatique des balises personnalisées pouvant être utilisées dans tous les modèles
from django import template
template.add_to_builtins('project.app.templatetags.custom_tag_module')
Si vous ajoutez cela au module chargé par défaut (settings.py, urls.py, every app models.py), vous aurez accès à toutes les balises et filtres de votre module personnalisé dans n'importe quel modèle, sans utiliser
{% load custom_tag_module %}
.
L'argument de
template.add_to_builtins()
peut être un chemin vers n'importe quel module; votre module personnalisé ne doit pas être lié à une application spécifique.
Par exemple, il peut également s'agir d'un module situé à la racine du projet (par exemple: '
project.custom_tag_module
').
Vaut-il la peine d'apprendre Django en 2020?
Si vous êtes un programmeur débutant, vous vous demandez: Dois-je apprendre Django? La reponse courte est oui.
Si vous avez besoin de mettre en œuvre votre idée avec des coûts minimes et rapidement, Django est le bon outil. Il est gratuit, open source et facilite le développement de projets Web. Django est la meilleure solution pour le prototypage d'applications car il comprend tout ce dont vous avez besoin pour créer la fonctionnalité dont vous avez besoin dès la sortie de la boîte. Par exemple, le panneau d'administration peut être connecté avec une ligne de code.
Si vous êtes un développeur déjà familiarisé avec Python et que vous recherchez un framework pour le backend de votre application ou site Web, Django est également un bon choix.
Le framework contient des bibliothèques et des outils qui vous permettent d'effectuer diverses opérations et de traiter efficacement un grand nombre de demandes des utilisateurs en temps réel.
Par conséquent, le processus de développement devient rapide car vous n'avez pas à créer chaque composant à partir de zéro.
Avantages de Django
1. Rapide
Les développeurs ont pensé que le cadre serait simple et en même temps rapide. Il contient des bibliothèques qui vous permettront de ne pas réinventer la roue ou de créer un projet à partir de zéro.
2. Sûr
En matière de sécurité, le framework vous permet de ne pas marcher sur un rake et d'éviter de nombreux problèmes de sécurité, tels que l'injection SQL, XSS, CSRF, en raison d'éventuelles erreurs de programmeur.
3. Panneau d'administration
Le framework dispose immédiatement d'un panneau d'administration et d'un système d'autorisation, ce qui vous permet de gagner du temps sur la gestion des utilisateurs et de créer un panneau d'administration séparé pour le backend.
4. évolutif
Le framework convient aux projets avec des degrés de charge de travail variables, et si un petit projet peut se développer à l'avenir, pas de problème - Django s'adapte parfaitement à de lourdes charges de travail.
5. Science et analyse des données
Nous savons déjà que Django est construit en Python, et Python est connu pour être un excellent outil pour créer des projets utilisant l'intelligence artificielle et l'apprentissage automatique. Par conséquent, si vous prévoyez d'intégrer l'apprentissage automatique dans votre projet ou d'analyser et de traiter de grandes quantités d'informations, vous devez absolument essayer Django.
6. Soutien communautaire
Il existe une communauté assez importante et active autour de Django, et le framework lui-même a une documentation riche et pratique.
Départ rapide
Afin de commencer immédiatement à coder rapidement sur Django avec une équipe et de tester, j'ai construit et téléchargé une image VPS sur le marché avec un projet Django 3.1.3 vide et
- serveur http Gunicorn 20.0.4
- Nginx 1.14.1 comme proxy inverse
- et serveur de base de données Postgresql 12.1.
Le coût d'un tel serveur sera de 769 roubles par mois - 538 roubles, s'il est payé pendant un an.
Et écrivez vos hacks de vie préférés tout en travaillant avec Django dans les commentaires - essayons de collecter un article de conseils.