1. Verwenden Sie in der Konfiguration relative Pfade
Geben Sie keinen absoluten Pfad an
settings.py
. Dies ist hilfreich, wenn Sie das Projekt später von verschiedenen Standorten aus ausführen, z. B. wenn Sie es auf einem anderen Webserver mit unterschiedlichen Pfaden bereitstellen. Verwenden Sie den folgenden Code in settings.py, wenn sich Ihre Vorlagen und statischen Dateien im Django-Projektverzeichnis befinden:
# 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. Verwenden Sie das Tag {% url%}
Verwenden Sie ein abwärtskompatibles Tag, anstatt Ihre Links fest zu codieren
{% url %}
. Dadurch erhalten Sie eine absolute URL. Wenn das Projekt verschoben wird, bleiben die Links gültig.
Grundsätzlich
{% url %}
wird der Name der Ansicht und ihre Parameter verwendet und eine umgekehrte Suche durchgeführt, um die angeforderte URL zurückzugeben. Wenn Sie Änderungen an urls.py vornehmen, werden die Links nicht unterbrochen.
3. Verwenden Sie den Django-Administrator für Ihre PHP-Anwendungen
Eine der Stärken von Django ist das Benutzerauthentifizierungssystem, das in den Kern von Django integriert ist. Es ist sehr einfach zu konfigurieren und enthält ein praktisches System zur Benutzerautorisierung und zum Einstellen der erforderlichen Einstellungen.
Dieses Autorisierungssystem ist so gut, dass viele empfehlen, es als Administrationsbereich für PHP-Anwendungen zu verwenden.
4. Verwenden Sie einen separaten Server für die statische Verarbeitung
Mit Django können Sie statische Dateien in Ihrer Entwicklungsumgebung hosten, jedoch nicht in Ihrer Produktionsumgebung.
Django soll dich vor dir selbst retten. Wenn Sie versuchen, statische Dateien von derselben Apache-Instanz zu verwenden, die Django bedient, verlieren Sie an Leistung.
Apache verwendet Prozesse zwischen den einzelnen Anforderungen erneut. Sobald ein Prozess den gesamten Code und die Bibliotheken für Django zwischengespeichert hat, verbleiben diese im Speicher. Und wenn Sie diesen Prozess nicht verwenden,
um Djangos Anfrage zu verarbeiten, wird all dieser Speicher verschwendet.
Wenn Sie einen separaten Server (oder VirtualHost) für die statische Verarbeitung verwenden, wird die Anwendungsleistung nicht beeinträchtigt.
5. Verwenden Sie die Django-Debug-Symbolleiste.
Debugging-Tools sind in jeder Sprache von unschätzbarem Wert. Sie beschleunigen den Entwicklungsprozess, indem sie helfen, Fehler und mögliche Probleme zu finden, die auftreten können.
In der Django-Debug-Symbolleiste können Sie alle ausgeführten SQL-Abfragen anzeigen, während die Ansicht gerendert wird, und Sie können auch die Stapelverfolgung für jede dieser Abfragen anzeigen.
6. Django-Unit-Test
Unit-Tests sind eine gute Möglichkeit, um sicherzustellen, dass Ihre Codeänderungen wie erwartet funktionieren und den vorherigen Code nicht beschädigen. Eines der großartigen Dinge an Django ist, dass das Schreiben von Unit-Tests unglaublich einfach ist. Django bietet die Möglichkeit, sofort Doctest oder Unittest zu verwenden. Die Django-Dokumentation enthält großartige Tutorials und Codebeispiele zum Einrichten von Komponententests, um das Auffinden von Fehlern noch einfacher zu machen.
7. Visualisierung von Modellen
Installieren Sie Django Command Extensions und pygraphviz und verwenden Sie dann den folgenden Befehl, um eine schöne Visualisierung der Projektmodelle in Django zu erhalten:
./manage.py graph_models -a -g -o my_project.png
8. Virtualenv
Virtualenv + Python = Zauberstab. Virtualenv isoliert die Python / Django-Einstellungen für jedes einzelne Projekt. Dies bedeutet, dass Änderungen an einer Site keine Auswirkungen auf andere Sites haben. Dies kann auch praktisch sein, wenn Sie verschiedene Versionen von Django oder Python auf dem Server behalten müssen.
9. Verwenden Sie Memcache
Wenn eine schlechte Leistung ein Problem sein kann, möchten Sie höchstwahrscheinlich eine Art Caching-System installieren. Django bietet viele Optionen für das Caching, aber Memcached ist bei weitem das Beste.
Die Installation und Verwendung von memcached ist unkompliziert, wenn Sie das cmemcache-Modul verwenden. Nach der Installation des Moduls müssen Sie der Konfiguration eine Zeile hinzufügen, damit Ihre Seiten noch schneller bereitgestellt werden.
10. Automatisches Laden von benutzerdefinierten Tags, die in allen Vorlagen verwendet werden können
from django import template
template.add_to_builtins('project.app.templatetags.custom_tag_module')
Wenn Sie dies dem standardmäßig geladenen Modul hinzufügen (settings.py, urls.py, jede App models.py), haben Sie Zugriff auf alle Tags und Filter Ihres benutzerdefinierten Moduls in einer beliebigen Vorlage, ohne diese zu verwenden
{% load custom_tag_module %}
.
Das Argument to
template.add_to_builtins()
kann ein Pfad zu einem beliebigen Modul sein. Ihr benutzerdefiniertes Modul muss nicht an eine bestimmte Anwendung gebunden sein.
Beispielsweise kann es sich auch um ein Modul handeln, das sich im Stammverzeichnis des Projekts befindet (zum Beispiel: '
project.custom_tag_module
').
Lohnt es sich, 2020 Django zu lernen?
Wenn Sie ein Anfängerprogrammierer sind, fragen Sie sich: Soll ich Django lernen? Die kurze Antwort lautet ja.
Wenn Sie Ihre Idee mit minimalen Kosten und schnell umsetzen müssen, ist Django das richtige Werkzeug. Es ist kostenlos, Open Source und macht die Entwicklung von Webprojekten noch einfacher. Django ist die beste Lösung für Prototyping-Anwendungen, da es alles enthält, was Sie benötigen, um die Funktionen zu erstellen, die Sie sofort benötigen. Beispielsweise kann das Admin-Panel mit einer Codezeile verbunden werden.
Wenn Sie ein Entwickler sind, der bereits mit Python vertraut ist und nach einem Framework für das Backend Ihrer Anwendung oder Website suchen, ist Django ebenfalls eine gute Wahl.
Das Framework enthält Bibliotheken und Tools, mit denen Sie verschiedene Vorgänge ausführen und eine große Anzahl von Benutzeranforderungen in Echtzeit effizient verarbeiten können.
Daher wird der Entwicklungsprozess schnell, da Sie nicht jede Komponente von Grund auf neu erstellen müssen.
Django profitiert
1. Schnell
Die Entwickler haben das Framework so konzipiert, dass es einfach und gleichzeitig schnell ist. Es enthält Bibliotheken, mit denen Sie das Rad nicht neu erfinden oder ein Projekt von Grund auf neu erstellen können.
2. Sicher
Wenn es um Sicherheit geht, können Sie mit dem Framework nicht auf einen Rechen treten und viele Sicherheitsprobleme wie SQL-Injection, XSS, CSRF aufgrund möglicher Programmiererfehler vermeiden.
3. Administrationsbereich
Das Framework verfügt sofort über ein Administrationsfenster und ein Autorisierungssystem, mit denen Sie Zeit bei der Benutzerverwaltung sparen und ein separates Administrationsfenster für das Backend erstellen können.
4. Skalierbar
Das Framework eignet sich für Projekte mit unterschiedlicher Arbeitsbelastung. Wenn ein kleines Projekt in Zukunft wachsen kann, ist dies kein Problem. Django lässt sich unter hoher Arbeitsbelastung perfekt skalieren.
5. Datenwissenschaft und Analytik
Wir wissen bereits, dass Django in Python erstellt wurde, und Python ist dafür bekannt, ein großartiges Werkzeug zum Erstellen von Projekten mit künstlicher Intelligenz und maschinellem Lernen zu sein. Wenn Sie vorhaben, maschinelles Lernen in Ihr Projekt zu integrieren oder große Mengen an Informationen zu analysieren und zu verarbeiten, sollten Sie Django unbedingt ausprobieren.
6. Unterstützung der Gemeinschaft
Es gibt eine ziemlich große und aktive Community um Django, und das Framework selbst verfügt über eine umfangreiche und praktische Dokumentation.
Schneller Start
Um sofort mit einem Team und Tests schnell mit dem Codieren auf Django zu beginnen, habe ich ein VPS- Image mit einem leeren Django 3.1.3-Projekt erstellt und auf den Markt hochgeladen
- http server Gunicorn 20.0.4
- Nginx 1.14.1 als Reverse-Proxy
- und einen Postgresql 12.1-Datenbankserver.
Die Kosten für einen solchen Server betragen 769 Rubel pro Monat - 538 Rubel, wenn sie für ein Jahr bezahlt werden.
Und schreibe deine Lieblings-Life-Hacks während der Arbeit mit Django in die Kommentare - lass uns versuchen, einen Beitrag mit Tipps zu sammeln.