[PYTHON] Lassen Sie uns die Bibliothek vorstellen, die derzeit von Ingenieuren mit ca. 3 Jahren Erfahrung in Django verwendet wird

Dieser Artikel ist der Artikel zum 10. Tag des Django Advent Calender 2016.

Hallo! Ich bin seit ungefähr 3 Jahren Ingenieur, seit ich angefangen habe, Django in meiner jetzigen Position einzusetzen. Dieses Mal möchte ich die Django-bezogene Bibliothek vorstellen, die ich derzeit benutze und die auch dazu dient, mein eigenes Wissen zu organisieren.

Lieferung statischer Dateien

django-storages https://pypi.python.org/pypi/django-storages

Eine Bibliothek zum Bereitstellen statischer Dateien auf CDNs wie Amazon S3. Eine Fork-Version namens django-storages-redux wurde geboren, weil sie nicht mit Python3 kompatibel war, aber jetzt bis zum neuesten 3.5 unterstützt. tun. In letzter Zeit scheint whitenoise beliebt zu sein, und ich denke darüber nach, zu wechseln, wenn es in Ordnung ist, es zu versuchen.

django-compressor https://pypi.python.org/pypi/django_compressor/2.1

Es ist eine Bibliothek, die mehrere CSS- und JS-Dateien in einer kombiniert. Es gibt auch eine Funktion, die den Inhalt inline einbettet und die Datenübertragung reduziert, indem Zeilenumbrüche und Kommentare betrachtet werden. Es kann auch mit Compilern wie altJS und Sass (SCSS) kombiniert werden.

easy-thumbnails https://pypi.python.org/pypi/easy-thumbnails/2.3

Es ist eine Bibliothek, die sogenannte "Halsbilder" erzeugt. Wenn das Bild, aus dem das Miniaturbild stammt, gelöscht wird, bleibt nur das Miniaturbild als Müll übrig. Sie müssen es daher regelmäßig mit dem Befehl "thumbnail_cleanup" löschen.

Suche

django-haystack https://pypi.python.org/pypi/django-haystack/2.5.1 Es wird für Standortinformationen in Elasticsearch verwendet. Wenn Sie Standortinformationen verwenden, können Sie nur in der Umgebung suchen, in der "libgeoip" installiert ist.

Fügen Sie Befehle hinzu, um die Entwicklung zu vereinfachen und den Code häufig geschriebener Muster zu vereinfachen

django-extensions https://pypi.python.org/pypi/django-extensions/1.7.5

Es ist eine Bibliothek, in der Sie das Gefühl haben, den juckenden Ort erreichen zu können, was die verschiedenen Funktionen von Django weiter verbessert. Die folgenden Befehle gefallen mir besonders gut.

--runserver_plus Befehl --Code kann in jeder Zeile des Stack-Trace ausgeführt werden, wenn ein Fehler auftritt. --shell_plus Befehl --shell wird mit häufig verwendeten Importanweisungen wie der Modellklasse und from django.conf import settings gestartet, die im Voraus ausgeführt wurden.

django-formtools https://pypi.python.org/pypi/django-formtools/1.0

Es ist eine Bibliothek, um die Bewegung von "Eingabe" -> "Bestätigung" -> "Senden" zu realisieren, die häufig in Anfrageformularen zu finden ist. Ursprünglich in Django selbst eingebaut, wurde es unabhängig von 1.8.

django-model-utils https://pypi.python.org/pypi/django-model-utils/2.6

Eine Bibliothek, mit der Sie Muster präzise schreiben können, die häufig im Modelldesign verwendet werden. StatusField oder [Choices](http://django-model-utils.readthedocs.io/en/ Die neueste Klasse / utilities.html (Auswahlmöglichkeiten) wird häufig verwendet, da sie eine sauberere Methode zum Schreiben eines Felds wie "Status" darstellt, in das nur ein vorgegebener Wert eingegeben werden kann, anstatt normalerweise ein Taple an das Attribut "Auswahl" zu übergeben. Ich werde.

django-braces https://pypi.python.org/pypi/django-braces

Eine Bibliothek mit gemischten Klassen klassenbasierter Ansichten. Wenn Sie die Dokumentation sorgfältig lesen, bevor Sie mit der Entwicklung beginnen, wird die Entwicklung problemlos fortgesetzt. Für LoginRequiredMixin ist LoginRequiredMixin Standard von Django 1.9. (/ de / dev / themes / auth / default / # the-loginrequired-mixin) wird erstellt, daher ist es besser, den Standard zu verwenden.

django-debug-toolbar https://pypi.python.org/pypi/django-debug-toolbar/1.6

Es handelt sich um eine Bibliothek, die auf der rechten Seite des Browserbildschirms eine Symbolleiste zum Debuggen anzeigt. Es ist nützlich, um den Ausgabeinhalt des Protokolls und die an die Datenbank geworfenen Abfragen zu überprüfen. Es gibt auch einen praktischen Befehl namens "debugsqlshell", der die Abfragen analysiert, die von Modelloperationen über der Shell ausgelöst werden.

django-haystack-panel https://pypi.python.org/pypi/django-haystack-panel/0.2.1

Eine Erweiterung der Django-Debug-Symbolleiste, die Abfragen analysiert, die vom Django-Heuhaufen geworfen wurden.

REST API djangorestframework https://pypi.python.org/pypi/djangorestframework/3.5.3

Eine Standardbibliothek zum Erstellen von Diensten, die REST-APIs mit Django bereitstellen. Es ist ziemlich raffiniert, also je nachdem, was Sie machen möchten, [JSONResponseMixin] von django-braces (https://django-braces.readthedocs.io/en/latest/other.html#jsonresponsemixin), JsonRequestResponseMixin, AjaxResponseMixin Du solltest es benutzen.

Zwischenspeicher

django-fancy-cache https://pypi.python.org/pypi/django-fancy-cache

Eine Bibliothek für Dinge wie "Bestimmte Seiten-Caches löschen, wenn diese Daten aktualisiert werden". (Überraschenderweise kann der Standard-Seiten-Cache das nicht ...)

Sicherheit

django-axes https://pypi.python.org/pypi/django-axes

Es ist eine Bibliothek, die den Anmeldebildschirm für eine Weile einfriert, wenn die Anmeldung eine bestimmte Anzahl von Malen fehlschlägt. Es wird als Gegenmaßnahme gegen Bots eingeführt, die versuchen, ein Konto bei Brute Force (oder Reverse Brute Force) zu stehlen. Da Protokolle beim Einfrieren auf WARN-Ebene ausgespuckt werden, ist es eine Richtlinie, per E-Mail oder Slack zu benachrichtigen und IP-Adressen zu blockieren, die dauerhaft mit einer Firewall wiederholt werden.

django-password-validation https://pypi.python.org/pypi/django-password-validation

Sie können einige komplizierte Passwörter erzwingen, wenn Sie Passwörter registrieren / aktualisieren. [Passwortvalidierung] eingeführt von Django 1.9 Diese Bibliothek wird auf 1.8 oder früher zurückportiert (https://docs.djangoproject.com/de/dev/topics/auth/passwords/#password-validation). Der Dienst, an dem ich gerade arbeite, verwendet 1.8, also habe ich ihn eingeführt.

Andere hilfreiche Seiten

Lesen Sie die Anforderungen und unten von Djangos Projektvorlage namens cookiecutter-django. empfohlen für. [^ 1] https://github.com/pydanny/cookiecutter-django

[^ 1]: Cookiecutter-Django wird übrigens am 5. Tag von @aki_yok eingeführt "Two Scoops of Django" : Best Practices für Django 1.8 "ist ebenfalls eine empfohlene Vorlage.

Recommended Posts

Lassen Sie uns die Bibliothek vorstellen, die derzeit von Ingenieuren mit ca. 3 Jahren Erfahrung in Django verwendet wird
In Python sortieren. Lassen Sie uns als nächstes über den Algorithmus nachdenken.
Verstehe in 10 Minuten Selen
Selen läuft in 15 Minuten
Über __all__ in Python
Lassen Sie uns die Bibliothek vorstellen, die derzeit von Ingenieuren mit ca. 3 Jahren Erfahrung in Django verwendet wird
Mal sehen, wie def in Python verwendet wird
Lassen Sie uns das Umfangsverhältnis mit Python finden
Über "für _ in range ():" von Python
Starten Sie in 5 Minuten GIMP Python-Fu
Beweisen wir den Additionssatz einer Dreiecksfunktion, indem wir die Funktion durch eine Funktion in SymPy ersetzen (≠ Substitution).
Einstellung, um den Inhalt der Bibliothek mit pytest einzugeben und einen Debug-Test durchzuführen
Die Geschichte der Verwendung von mysqlclient, da PyMySQL nicht mit Django 2.2 verwendet werden kann
Django ~ Lass es uns im Browser anzeigen ~
Vor- und Nachteile von Django, die Menschen mit einjähriger Erfahrung denken
Verstehen Sie die Bilder verschiedener Matrixoperationen, die in Keras (Tensorflow) verwendet werden, anhand von Beispielen
Korrigieren Sie die Argumente der in map verwendeten Funktion
[Hinweis] Über die Rolle des Unterstrichs "_" in Python
Die Geschichte der Anzeige von Mediendateien in Django
Suchen Sie nach dem Wert der Instanz in der Liste
[Django] Lassen Sie uns versuchen, den Teil von Django zu klären, der im Test irgendwie durch war
Ich habe Python verwendet, um mich über die Rollenauswahl der 51 "Yachten" in der Welt zu informieren.
Eine Geschichte über den Versuch, Linter mitten in einem Python (Flask) -Projekt vorzustellen