So erstellen Sie ein Django-Projekt aus einer Vorlage

Hallo wieder! Speziell für Studenten des Kurses "Webentwickler in Python" haben wir eine weitere interessante Übersetzung vorbereitet.





Eine Django-Projektvorlage ist eine natürliche Methode, um Probleme zu lösen, die auftreten, wenn das Standard-Django-Projektformat die Anforderungen nicht mehr erfüllt. In diesem Handbuch erfahren Sie heute, wie Sie aus einer Vorlage ein eigenes Projekt erstellen.

Was ist eine Projektvorlage in Django?


Eine der wenig bekannten Funktionen von Django ist die Möglichkeit, ein Projekt aus einer Vorlage zu erstellen, dh einer benutzerdefinierten Verzeichnisstruktur.

Dies ist praktisch, wenn das Standardprojektformat nicht mehr ausreicht (und es wird definitiv nicht ausreichen, wenn Sie Ihre Lösung in der Produktion bereitstellen möchten, glauben Sie mir) oder wenn Sie den Punkt erreichen, an dem Sie immer wieder dieselben Konfigurationen verwenden werden viele Projekte auf Django.

Eine Django-Projektvorlage ist nichts anderes als ein Projekt mit einer vordefinierten benutzerdefinierten Verzeichnisstruktur, die Sie in wenigen Minuten selbst erstellen können.
Ein Beispiel für die beliebte Django-Vorlage ist der Django-Ausstecher . Django AusstecherEs verfügt über eine breite Palette von Funktionen und Konfigurationen, die für eine autarke Bereitstellung in der Produktion bereit sind. Auf diesem Pfad können fast alle neuen Projekte auf Django erstellt werden.

Der Django-Ausstecher ist jedoch manchmal überflüssig, insbesondere für Anfänger. Erstellen Sie daher vor der Verwendung eine einfachere Django-Vorlage, mit der Sie die Grundlagen besser verstehen können.

In den folgenden Abschnitten erfahren Sie, wie Sie Ihre eigene Vorlage erstellen.

So erstellen Sie Ihre eigene Django-Projektvorlage


Erstellen Sie zunächst eine virtuelle Python-Umgebung im ausgewählten Ordner und installieren Sie Django (beachten Sie, dass dies vier separate Befehle sind):

mkdir project-name && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Erstellen Sie dann ein Django-Projekt mit:

django-admin startproject project_name .

Achten Sie auf den Namen, er sollte genau Projektname sein . Öffnen Sie danach das Projekt im Editor.

(Beachten Sie, dass ich in unserem Beispiel den Projektnamen für den Ordner und den Projektnamen verwendet habe.)

Jetzt müssen Sie sich jede Datei im Projekt ansehen und alle Projektnamen durch {{Projektname}} ersetzen (ein einzeiliger sed-Befehl ist in Ordnung).

Dateien, die Sie ändern müssen:

  • verwalten.py
  • settings.py
  • wsgi.py
  • asgi.py

Wie Sie vielleicht erraten haben, ist die Variable {{Projektname}} ein Platzhalter. In manage.py müssen Sie beispielsweise Folgendes ersetzen:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')
    try:
# omit

Auf das:

# manage.py

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')
    try:
# omit

In wsgi.py ändern Sie Folgendes :

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')

Zu dem Folgendem:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings')

Usw.

Darüber hinaus können Sie jede gewünschte Konfiguration erstellen oder sogar die Django-Einstellungen für Entwicklung, Test und Produktion in separate Dateien analysieren. Ein Beispiel finden Sie hier .

Stellen Sie sicher, dass Sie die virtuelle Umgebung aus der Projektvorlage entfernen, bevor Sie mit dem nächsten Schritt fortfahren.

So erstellen Sie ein Django-Projekt aus Ihrer eigenen Vorlage


Nachdem Sie die Projektvorlage haben, können Sie sie verwenden.

Erstellen Sie dazu eine neue virtuelle Python-Umgebung in einem anderen Ordner und installieren Sie Django:

mkdir new-django-project && cd $_
python3 -m venv venv
source venv/bin/activate
pip install django

Anstatt nur das Startprojekt django-admin auszuführen , übergeben wir jetzt das Flag --template , um es von unserer Vorlage aus zu installieren. Angenommen, Sie hätten eine Vorlage in Ihrem Home-Verzeichnis ~ / project-name erstellt und würden Folgendes tun:

django-admin startproject --template ~/project-name new_django_project .

Dieser Befehl erstellt ein neues Django-Projekt aus der Vorlage.

(Beachten Sie, dass ich in diesem Beispiel new-django-project als externen Ordner und new_django_project als Projektnamen verwendet habe.)

Jetzt fragen Sie sich vielleicht, ob es beispielsweise möglich ist, eine Remote-Vorlage aus dem Repository auf GitHub zu verwenden. Ja natürlich!

So erstellen Sie ein Django-Projekt aus einer Remote-Vorlage


Das Flag --template für startproject kann eine URL als Remote-Quelle akzeptieren. So können Sie ein Django-Projekt aus einer Remote-Vorlage erstellen, zum Beispiel:

django-admin startproject --template https://github.com/username/repo/archive/master.zip new_django_project .

Bonus: Vorlagen für alles


Zusätzlich zur Standardisierung von Dateien, die sich auf Django beziehen, können Sie dies auch für jede andere Datei im Projekt tun.

Stellen Sie sich vor, Sie müssen in Heroku bereitstellen, wo ein Procfile erforderlich ist . Um Procfile durch das Vorlagensystem zu leiten , sodass {{Projektname}} durch den tatsächlichen Namen des Projekts ersetzt wird, können Sie startproject mit dem Flag --name ausführen .

django-admin startproject --template https://github.com/username/repo/archive/master.zip --name=Procfile new_django_project .

Stellen Sie sicher, dass Procfile einen Platzhalter für project_name hat :

release: python manage.py migrate
web: gunicorn -w 3 {{ project_name }}.wsgi --log-file -

Quellen


Um eine anspruchsvolle Django-Vorlage zu erstellen, schauen Sie sich ponee an , eine leichte Django-Vorlage, die für die Verwendung mit Heroku bereit ist.

Hier ist so ein kleines aber feines Material. Wir warten auf Ihre Kommentare und werden zu einem kostenlosen Webinar eingeladen , in dessen Rahmen wir detailliert lernen, wie Sie Projekte auf Flask testen, Tests für Projekte auf Flask schreiben und ausführen sowie Testdaten mit Faker und Factory Boy erstellen.

All Articles