Best Practices für eine Django-Arbeitsverzeichnisstruktur

Vaibhav Vaibhav 29 Juni 2021
Best Practices für eine Django-Arbeitsverzeichnisstruktur

Django ist ein fantastisches Python-basiertes Open-Source-Webentwicklungs-Framework, mit dem Sie Full-Stack-Webanwendungen erstellen können. Da es sich um ein Framework handelt, kann man zunächst viele Dateien innerhalb der Projekte erwarten. Es kann für einen Anfänger anfangs zu überwältigend sein, aber es gibt keinen Grund zur Sorge; mit der Zeit wird alles einfach aussehen.

Eine Webanwendung hat zwei Seiten: Entwicklung und Produktion. Die Entwicklungsseite hat andere Einstellungen als die Produktionsseite. Django-Anwendungen haben viele Ordner wie static, media, templates usw. Da es Django schon eine Weile gibt, müssen Sie die Best Practices für eine Django-Arbeitsverzeichnisstruktur für erfolgreichere Projekte in diesem Bereich kennen Bereich. Wir werden hier im Artikel über diese Methoden sprechen, also lesen Sie weiter!

Django-Verzeichnisstruktur

Die Verzeichnisstruktur eines Django-Projekts sollte etwa so aussehen:

Project Folder/
    .gitignore    
    LICENSE.rst or LICENSE.md
    Documentation/
    README.rst or README.md
    environment
    requirements.txt
    MyProject/
        manage.py
        media/
        MyProject/
            __init__.py
            settings/
                __init__.py
                base.py
                development.py
                production.py
                .env
            urls.py
            wsgi.py
        AppOne/
            static/
                AppOne/
            templates/
                AppOne/
            urls.py
            views.py
            models.py
        AppTwo/
            static/
                AppTwo/
            templates/
                AppTwo/
            urls.py
            views.py
            models.py
        AppThree/
            static/
                AppThree/
            templates/
                AppThree/
            urls.py
            views.py
            models.py

Django-Stammordner

Der Root-Ordner Project Folder enthält Django-Projekte und alle anderen zum Projekt gehörenden Dateien wie license, README, environment, requirements.txt, .gitignore und Documentation or Docs.

Django-Projektordner

Innerhalb des Django-Projekts MyProject sollten sich die Datei manage.py, der Ordner media, der Ordner MyProject mit der Datei settings.py und die Django-Anwendungen befinden.

Ordner für Django-Projekteinstellungen

Django stellt uns standardmäßig eine einzelne settings.py-Datei und einige andere wichtige Dateien wie urls.py, wsgi.py usw. zur Verfügung. Die settings.py-Datei enthält Einstellungen für die Produktion und Entwicklung. Daher kann es für ein bedeutenderes Projekt länger werden.

Daher ist es eine gute Idee, die Einstellungen in ihre jeweiligen Dateien aufzuteilen. Die Datei base.py enthält die Einstellungen, die sowohl für die Entwicklung als auch für die Produktion gelten. Die Datei development.py enthält alle anwendbaren Einstellungen für die Entwicklung und die Datei production.py enthält alle Produktionseinstellungen.

Die Entwicklungs- und Produktionsseite können unterschiedliche Datenbankeinstellungen, Passwortvalidierungseinstellungen, E-Mail-Einstellungen, Zahlungseinstellungen, API-Schlüssel und andere Konfigurationen haben.

Wenn Sie Python Decouple verwenden, um sensible Daten zu speichern, sollte sich auch die Datei .env in diesem Ordner befinden.

Django-Anwendungen

Jede Django-Anwendung hat einen static Ordner und einen templates-Ordner. In diesen Ordnern befindet sich ein weiterer Ordner mit dem Namen der Anwendung. In diesen Ordnern werden alle statischen Dateien und Vorlagen abgelegt.

Dieser Ansatz ermöglicht es uns, mehrere Dateien mit demselben Namen zu haben. Zum Beispiel kann jede Anwendung eine index.html-Datei und eine style.css haben, und es wird einfacher, darauf zuzugreifen.

----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}

---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.