Maison >développement back-end >Tutoriel Python >Django Advanced : un guide pour une application efficace du framework Web Python

Django Advanced : un guide pour une application efficace du framework Web Python

WBOY
WBOYoriginal
2023-06-22 13:15:37713parcourir

Avec la popularité des applications Web, de plus en plus de développeurs utilisent le langage Python et son framework Web Django pour créer des applications efficaces. Cet article présentera quelques techniques avancées de Django pour rendre votre application plus efficace.

1. Utiliser la mise en cache pour améliorer les performances

Dans les applications, certaines données doivent uniquement être mises à jour régulièrement sans interroger la base de données à chaque requête. Dans ce cas, la mise en cache peut être utilisée. Django dispose d'un système de mise en cache intégré et prend en charge une variété de backends de mise en cache, tels que Memcached, Redis, etc. Vous pouvez configurer le backend du cache et activer la mise en cache dans le fichier settings.py :

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

MIDDLEWARE_CLASSES = [
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
]

La configuration ci-dessus utilise Memached comme backend du cache et active la mise en cache dans le middleware.

2. Utilisez Celery pour les tâches asynchrones

Dans les applications, certaines tâches n'ont pas besoin d'être exécutées immédiatement et peuvent être traitées de manière asynchrone en arrière-plan, ce qui peut améliorer considérablement les performances des applications. Django peut être combiné avec Celery pour implémenter le traitement des tâches asynchrones. Celery est la file d'attente de tâches distribuée la plus populaire de Python. Elle peut gérer un grand nombre de tâches et prend en charge plusieurs files d'attente de messages.

Installez Celery :

pip install celery

Configurez Celery :

#settings.py
CELERY_BROKER_URL = 'redis://127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0'

# app/tasks.py
from celery import Celery
 
app = Celery('tasks')
 
@app.task
def add(x, y):
    return x + y

La configuration ci-dessus utilise Redis comme file d'attente des messages et stockage des résultats, et définit une tâche informatique. Démarrez Celery :

celery -A proj worker -l info

3. Utilisez des requêtes de base de données optimisées

En utilisant des techniques d'optimisation des requêtes, vous pouvez réduire les opérations d'E/S de la base de données et améliorer les performances des applications.

  1. Réduisez le nombre de requêtes

Lorsque plusieurs objets doivent être interrogés, plusieurs requêtes consommeront beaucoup de temps et de ressources. Vous pouvez utiliser select_rated() pour optimiser :

class Author(models.Model):
    name = models.CharField(max_length=200)

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.ForeignKey(Author)

#不优化
for book in Book.objects.all():
    print(book.author.name)

#优化
for book in Book.objects.select_related('author').all():
    print(book.author.name)
  1. Utiliser des index

Lorsque l'application interroge un grand nombre d'enregistrements, l'utilisation d'index peut réduire considérablement le temps de requête. Django utilise ORM pour faire fonctionner la base de données. Vous pouvez définir l'index en ajoutant le paramètre db_index au champ modèle :

class Book(models.Model):
    title = models.CharField(max_length=200, db_index=True)
    author = models.ForeignKey(Author, db_index=True)

4. Utilisez la barre d'outils de débogage de Django pour déboguer les applications

La barre d'outils de débogage de Django est un plug-in tiers qui peut fournir une analyse des performances des applications en temps réel et des informations de débogage.

Installez et configurez la barre d'outils de débogage Django :

#安装
pip install django-debug-toolbar

#settings.py
INSTALLED_APPS = [
    'debug_toolbar',
]

MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]

INTERNAL_IPS = [
    '127.0.0.1',
]

La configuration ci-dessus active la barre d'outils de débogage Django et l'ajoute au middleware. Lors de l'accès à l'application dans le navigateur, la barre d'outils s'affichera et vous pourrez afficher des informations telles que l'heure de la requête, la requête SQL, le cache, etc.

Résumé

Ce qui précède est un guide pour une application efficace du framework Web Django. En utilisant la mise en cache, Celery, l'optimisation des requêtes et la barre d'outils de débogage Django, l'application peut être rendue plus efficace. Bien entendu, en plus des techniques mentionnées ci-dessus, il existe de nombreuses autres méthodes d’optimisation, qui doivent être sélectionnées et utilisées en fonction de scénarios et de besoins spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn