In diesem Artikel erhalten Sie ein umfassendes Verständnis für das Caching in Django und die Webentwicklung insgesamt. Sie werden erfahren, was Caching ist, welche Vorteile des Ausrückens, wie das Caching in Django, die Backend -Systeme, die Django unterstützt, und die besten Praktiken des Caching.
Am Ende des Artikels als Backend -Webentwickler haben Sie ein solides Verständnis für das Caching und wie Sie es in Ihren Django -Projekten für die beste Leistung implementieren können.Das Django -Framework ist eines der beliebtesten Backend -Frameworks, die von Webentwicklern heutzutage verwendet werden. Als Entwickler sollte das Erstellen von Webanwendungen mit hoher Leistung eines der Ziele auf Ihrer Liste sein. Das Erstellen einer Webanwendung in Django zur hohen Leistung sollte also kein Problem sein, da Django mit einem Caching-Framework ausgestattet ist, mit dem Sie verschiedene Caching-Backends wie In-Memory-Cache, dateibasiertes Cache, Datenbank-Cache und mehr verwenden können. 🎜>
Einführung in Django Caching
gemeinsame Caching -Szenarien und Anwendungsfälle
Seite zwischengespeichert. Dies ist ein Szenario, in dem häufig besuchte Seiten auf einer Website vollständig zwischengespeichert werden. Die Anwendung holt die zwischengespeicherten Versionen der Seiten ab und rendert sie, wenn eine Anfrage gestellt wird, anstatt den Inhalt der Seite von Grund auf neu zu erstellen.
Datenbankabfrage Caching. Das Caching der Datenbankabfrage ist ein guter Ansatz für Anwendungen, die davon abhängen, dass die Datenbank nach Informationen häufig anfordern. Eine Reihe von Anfragen kann durch die gleichen Zwischendaten erfüllt werden, ohne die Datenbank zu treffen, wodurch die Datenbank -Treffer gesenkt werden und die Server -Antwortzeit beschleunigt werden müssen.
Sitzung und Authentifizierung zwischeneinander. Mit dem Zwischenspeichern kann eine optimierte Benutzererfahrung und eine schnellere Reaktionszeit verwendet werden. Da zwischengespeicherte Daten es den Benutzern ermöglichen, sich einfach in den authentifizierten Abschnitten einer Anwendung zu bewegen, können die Caching -Authentifizierungs- und Sitzungsdetails dazu beitragen, redundante Authentifizierungsvorgänge zu reduzieren.
Caching ist für Webentwickler in dieser modernen Umgebung, in der Daten von entscheidender Bedeutung sind und die Geschwindigkeit ist, für Webentwickler von wesentlicherem und wesentlicher geworden. Dies sind einige der Vorteile von Caching:
Verbesserte Leistung. Das Caching verbessert die Leistung von Webanwendungen durch Reduzierung der Serverlast. Wenn der Server von der Anwendung Anfragen erhält, stellt das Caching sicher, dass einige Anforderungen mit zuvor zwischengespeicherten Daten erfüllt werden. Dies verhindert, dass der Server diese Vorgänge von Grund auf neu durchführen muss. Infolgedessen wird die Erfahrung der Benutzer insgesamt verbessert und die Reaktionszeiten werden beschleunigt.
reduzierte Reaktionszeit. Das Caching minimiert die Reaktionszeit durch Reduzierung der Datenbankschläge. Durch das Caching können die Daten jedes Mal, wenn sie benötigt werden, von einem bequemen Ort und nicht direkt aus der Datenbank abgerufen werden. Da einige Daten teure Berechnungen benötigen, die einige Zeit in Anspruch nehmen können, ist das Abrufen von Daten jedes Mal, wenn sie aus der Datenbank benötigt werden, möglicherweise nicht die beste Wahl für alle Daten. Durch das Speichern der Daten und die Umfangsfestigkeit bei Bedarf speichert das Caching den Tag.
Ressourcenoptimierung. Durch das Zwischenspeichern von Daten oder Ressourcen in einer Webanwendung können Ressourcen zugänglich und abgerufen werden, ohne sich wiederholende Vorgänge auszuführen, die dieselben Ressourcen ausgeben.
Die Hauptaufgaben in diesem Abschnitt bestehen darin, die virtuelle Umgebung zu erstellen und die erforderlichen Module für das Projekt zu installieren. Um die virtuelle Umgebung zu erstellen, geben Sie diesen Befehl in Ihr Terminal ein:
$ python <span>-m venv project </span>
Alle Module für das Projekt werden in dieser Umgebung installiert. Um es zu verwenden, müssen wir es aktivieren.
unter Windows verwenden Sie dies:
$ .<span>\project\Scripts\activate </span>
und auf MacOS oder Linux verwenden Sie Folgendes:
$ <span>source project/bin/activate </span>
Bevor wir das Caching implementieren, müssen Sie als erstes ein Django -Projekt einrichten. Lassen Sie uns zuerst Django installieren. Öffnen Sie Ihr Terminal und führen Sie diesen Befehl aus:
$ python <span>-m venv project </span>
Nachdem wir Django erfolgreich installiert haben, erstellen wir ein Django -Projekt und eine Anwendung. Um einen Django -Projekt zu erstellen:
$ .<span>\project\Scripts\activate </span>
Navigieren Sie in den Ordner des Projekts. Hier erstellen wir eine Django -Anwendung. Führen Sie diesen Befehl aus:
$ <span>source project/bin/activate </span>
und führen Sie dann das aus:
$ pip <span>install django </span>
Nachdem wir das Projekt und die Anwendung erfolgreich erstellt haben, müssen wir die Anwendung an das Projekt registrieren. Öffnen Sie die Datei Einstellungen.py und lassen Sie die Liste der Installed_Apps so aussehen:
$ django-admin startproject cachedproject
Hinweis: Um die Anwendung in Ihrem Django -Projekt zu verwenden, muss sie in der Liste installed_apps registriert werden.
Um zu überprüfen, ob das Django -Framework erfolgreich installiert wurde, testen wir es. Führen Sie im Terminal diesen Befehl aus:
$ <span>cd cachedproject </span>
Stellen Sie sicher, dass Sie die unten abgebildete Ausgabe erhalten.
Kopieren Sie nun die URL und fügen Sie sie in den Webbrowser ein. Die erwartete Ausgabe ist unten abgebildet.
Hinweis: Sie können mehr über das schnelle Starten eines Django -Projekts und eine Django -App auf SitePoint lesen.
Um das Caching zu verwenden, müssen wir es in unserem Django -Projekt konfigurieren. In diesem Abschnitt werden wir uns also ansehen, wie wir verschiedene Caching -Systeme konfigurieren können, die in Django verfügbar sind.
Wie der Name schon sagt, speichert der lokale Speichercache, der manchmal als Locmem abgekürzt wird, zwischengespeicherte Daten im RAM des Hosting -Computers.
django verwendet automatisch lokales Speicher -Caching als Standard -Caching -System, wenn Sie in Ihrer Datei "Einstellungen" keinen alternativen Caching -Mechanismus bereitstellen. Seine fadensichere, schnelle und reaktionsschnelle Caching-Technik ist bemerkenswert.
lokaler Speichercache ist für die Verwendung in Produktionsumgebungen weniger geeignet, da er einen Mechanismus pro Prozess enthält, der jede Art von Cross-Process-Caching verhindert und einzelne Prozesse sorgt, um separate private Cache-Instanzen aufrechtzuerhalten. Es ist dennoch eine gute Wahl für die Entwicklung.
Fügen Sie den folgenden Code in der Datei "Einstellungen" hinzu:
$ python manage.py startapp cachedapplication
Im dateibasierten Caching wird jeder Cache-Wert serialisiert und beim Caching getrennt in einer Datei aufbewahrt. Es ist nützlich für kleine Anwendungen oder wo Speicherbasis-Caching nicht praktisch ist.
Der Nachteil dieses Caching-Systems ist, dass es relativ langsamer im Vergleich zu speicherbasiertem Caching ist.
Fügen Sie zum Konfigurieren von Dateibasis in Ihrer Anwendung den folgenden Code in die Datei "Einstellungen" hinzu:
INSTALLED_APPS <span>= [ </span> <span>'django.contrib.admin', </span> <span>'django.contrib.auth', </span> <span>'django.contrib.contenttypes', </span> <span>'django.contrib.sessions', </span> <span>'django.contrib.messages', </span> <span>'django.contrib.staticfiles', </span> <span># new application added </span> <span>'cachedapplication', </span><span>] </span>
Wenn Sie unter Windows sind, stellen Sie sicher
$ python <span>-m venv project </span>
Abgesehen von der Speicherung von Caches in Dateien und dem Hosting des RAM des Geräts bietet Django auch die Möglichkeit, den Cache in einer Datenbank zu speichern.
Dies funktioniert am besten, wenn Sie einen schnellen, gut indexierten Datenbankserver haben.
Fügen Sie den folgenden Code in den Einstellungen hinzu.
$ .<span>\project\Scripts\activate </span>
$ <span>source project/bin/activate </span>
Memcached Caching
Im Gegensatz zum Locmem -Cache arbeitet Memcached als Daemon, was impliziert, dass der Memcached -Server unabhängig von einer direkten Benutzerinteraktion als Hintergrundprozess ausgeführt wird. Memcached muss daher separat auf Ihrem Computer installiert werden. Installieren und konfigurieren Sie dann in Ihrer Django -Anwendung eine seiner Bindungen wie Pylibmc oder Pymemcache, um Memcached zu verwenden.
Eine Django -Anwendung kann mit einem Memcached -Daemon verknüpft werden, indem die Cache -Einstellungen, der Speicherort, die IP -Adresse und andere Details hinzugefügt werden, wie unten gezeigt:
$ pip <span>install django </span>
Der Nachteil von memcached ist, dass die Daten, da die Daten im Speicher gespeichert sind, verloren geht, wenn Ihr Server abstürzt.
Redis
Um Daten mithilfe von REDIS in Ihrer Anwendung zu richten, benötigen Sie einen Redis -Server, der entweder lokal oder auf einem Remote -Computer ausgeführt wird. Um Redis auf Ihrer Maschine einzurichten, lesen Sie den Redis -Erste -Start -Leitfaden.
Nach dem Einrichten des Redis -Servers müssen Sie Python -Bindungen für Redis installieren. Verwenden Sie diesen Befehl, um ihn zu installieren:
Die Redis-Py-Schnittstelle ist die bindung, die nativ von Django oder die Django-Redis- und Redis-Pakete verwendet wird.
$ django-admin startproject cachedproject
Um Redis Caching in Ihrer Anwendung zu konfigurieren, da Ihr Redis -Server auf Localhost (127.0.0.1), Port = 6379 ausgeführt wird, fügen Sie den folgenden Code in den Einstellungen hinzu.py:
$ python <span>-m venv project </span>
Redis und das Vertrauen in externe Dienstleistungen sind seine Kompromisse. Die Redis -Installation und -konfiguration können schwieriger sein als bei bestimmten anderen Cache -Backends. Es benötigt einen zweiten Server und eine Instandhaltung, wenn Sie online sind. Die Redis -Nutzung schafft eine Abhängigkeit von einem externen Dienst. Die Caching -Funktionen Ihrer Anwendung können betroffen sein, wenn Redis Probleme hat oder sinkt.
Okay, das ist genug Theorie. In diesem Abschnitt werden wir demonstrieren, wie das Caching in einer Django -Anwendung ausführt. Wir konzentrieren uns auf drei Formen des Caching:
, aber bevor wir jedes Caching -Formular im Detail ausführen, stellen wir das Projekt zuerst richtig ein. Wir erstellen, registrieren und füllen die Modelle, konfigurieren die URLs der Anwendung, erstellen eine Vorlage, installieren die Django -Debug -Symbolleiste und konfigurieren sie.
In der CachedApplication -App öffnen Sie die Datei models.py und lassen Sie sie so aussehen:
$ .<span>\project\Scripts\activate </span>
Öffnen Sie als nächstes die Datei admin.py und fügen Sie diesen Code ein:
$ <span>source project/bin/activate </span>
Dieser Code -Snippet registriert den Modellprogrammierer im Django Admin -Dashboard.
Bevor wir die Modelle bevölkern, machen wir einige Migrationen. Führen Sie im Terminal dies aus:
$ pip <span>install django </span>
und führen Sie dies auch aus:
$ django-admin startproject cachedproject
In Django können wir unsere Modelle auf zwei Arten bevölkern: über das Terminal und über das Admin -Dashboard. Der Einfachheit halber werden wir jedoch das Admin -Dashboard verwenden. Da das Admin -Dashboard nur für den Superuser gilt, müssen wir eines erstellen. Führen Sie im Terminal den folgenden Befehl aus:
$ <span>cd cachedproject </span>
Dieser Befehl fordert Sie auf, Superuser -Details wie Benutzername, E -Mail und die beiden Passwörter einzugeben.
Nachdem Sie den Superuser erfolgreich erstellt haben, den lokalen Server aufstellen und in Ihrem Browser diese URL eingeben: http://127.0.0.1:8000/admin/. Das Bild unten zeigt die Seite, auf die Sie aufgenommen werden.
Anmeldung, geben Sie die Superuser -Anmeldeinformationen an und bevölkern Sie die Modelle mit Daten, wie unten abgebildet.
In der Anwendung erstellen Sie einen Vorlagenordner und erstellen Sie eine list_all.html -Datei. Lassen Sie vorerst die HTML -Datei leer. Öffnen Sie die Datei der Ansichten.py und lassen Sie sie so aussehen:
$ python manage.py startapp cachedapplication
Registrieren wir nun die Heimansicht in der URLS.PY -Datei des Projekts. Öffnen Sie im Ordner cachedProject die URLS.Py -Datei und fügen Sie diesen Code ein:
INSTALLED_APPS <span>= [ </span> <span>'django.contrib.admin', </span> <span>'django.contrib.auth', </span> <span>'django.contrib.contenttypes', </span> <span>'django.contrib.sessions', </span> <span>'django.contrib.messages', </span> <span>'django.contrib.staticfiles', </span> <span># new application added </span> <span>'cachedapplication', </span><span>] </span>
Öffnen Sie nun die Datei list_all.html und fügen Sie den folgenden Code ein:
$ python <span>-m venv project </span>
installieren wir eine Django -Debug -Symbolleiste. Dies ist ein Python -Paket, mit dem Entwickler die Leistung ihrer Django -Anwendungen überwachen und detaillierte Informationen zu Datenbankabfragen, HTTP -Anfragen, Vorlagenwiedergabezeiten und mehr bereitstellen können. Geben Sie also in Ihrem Terminal diesen Befehl ein:
$ .<span>\project\Scripts\activate </span>
Um die Django-Debug-Toolbar zu konfigurieren, öffnen Sie die Datei Einstellungen.
$ <span>source project/bin/activate </span>
$ pip <span>install django </span>
$ django-admin startproject cachedproject
$ <span>cd cachedproject </span>
$ python manage.py startapp cachedapplication
INSTALLED_APPS <span>= [ </span> <span>'django.contrib.admin', </span> <span>'django.contrib.auth', </span> <span>'django.contrib.contenttypes', </span> <span>'django.contrib.sessions', </span> <span>'django.contrib.messages', </span> <span>'django.contrib.staticfiles', </span> <span># new application added </span> <span>'cachedapplication', </span><span>] </span>
$ python manage.py runserver
<span># CACHES dictionary which contains caching configurations. </span>CACHES <span>= { </span> <span># a cache alias or name. In this case, we use "default" as the alias. </span> <span>"default": { </span> <span># Here, we're using the in-memory cache backend. </span> <span>"BACKEND": "django.core.cache.backends.locmem.LocMemCache", </span> <span># LOCATION parameter gives a unique name or identifier to this cache instance. </span> <span>"LOCATION": "unique-snowflake", </span> <span>} </span><span>} </span>
Caching
<span># A CACHES dictionary, which contains caching configurations. </span>CACHES <span>= { </span> <span># we use "default" as the alias. </span> <span>"default": { </span> <span># Here, we're using the file-based cache backend. </span> <span>"BACKEND": "django.core.cache.backends.filebased.FileBasedCache", </span> <span># LOCATION parameter to specify the file system path where cached data will be stored. </span> <span>"LOCATION": "/var/tmp/django_cache", </span> <span>} </span><span>} </span>
CACHES <span>= { </span> <span>"default": { </span> <span>"BACKEND": "django.core.cache.backends.filebased.FileBasedCache", </span> <span>"LOCATION": "C:/my/path-to/file", </span> <span>} </span><span>} </span>
Besuchen Sie nun dieselbe Ansicht und aktualisieren Sie die Seite. Wir erhalten das Ergebnis unten abgebildet.
Vorlagenfragment Caching
Versuchen Sie nun, das Projekt auszuführen, bevor Sie diese Caching -Technik implementieren. Das Bild unten zeigt, was wir erhalten.
Die Gesamtzeit beträgt 220,26 ms, und drei SQL -Abfragen werden in 7,75 ms durchgeführt.
Lassen Sie uns nun die Caching -Technik implementieren. Wir werden den
$ python <span>-m venv project </span>
oben in der Datei laden wir den Cache über { % load cache %} und haben den Div -Teil mit { % Cache 500 -Programmierern %} und { % endCache %}.
Wenn Sie das Projekt erneut ausführen, erhalten Sie das unten abgebildete Ergebnis.
pro-site Caching
$ .<span>\project\Scripts\activate </span>
$ <span>source project/bin/activate </span>
Wenn Sie diesen Artikel genossen haben, lesen Sie einige weitere Django -Artikel auf SitePoint.
Das obige ist der detaillierte Inhalt vonEin umfassender Leitfaden für Django Caching. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!