Starten eines Django-Projekts

Starten eines Django-Projekts

Django ist ein Python-Webframework auf hoher Ebene, das eine schnelle Entwicklung und ein sauberes, pragmatisches Design fördert.

In diesem Tutorial beantworten wir die Frage“How do I setup a Django (1.5, 1.6, 1.7, or 1.8) project from scratch?” Mit anderen Worten, Sie lernen, wie Sie Django installieren und Ihre Django-Projektstruktur einrichten.

So können Sie dieses Tutorial optimal nutzen:

  1. Lesen Sie die Abschnitte Einführung und Setup.

  2. Wählen Sie dann Ihr Gift - Django 1.5, 1.6, 1.7, 1.8 -, um ein Django-Projekt einzurichten.

  3. Gehen Sie nach der ersten Projekteinrichtung zum Abschnitt "App erstellen", um eine schöne und einfache App einzurichten.

  4. Überprüfen Sie anschließend den zusammenfassenden Workflow, um eine Kurzanleitung für ein Django-Projekt zu erhalten.

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF) zeigt Ihnen Tipps und Tricks sowie häufige Fallstricke, die Sie beim Erstellen von Python + Django-Webanwendungen vermeiden sollten.

Update: Wir haben die Domainrealdjango.com auf diesen Beitrag verwiesen, damit Sie ihn leicht wiederfinden können.

Einführung

Dieses Tutorial beantwortet die Frage“How do I setup a Django Project from scratch?” Da Sie dies lesen, gehe ich davon aus (ähm, hoffentlich), dass Sie wissen, dass Django ein Python-Webframework ist, das für eine schnelle Webentwicklung entwickelt wurde. Wir werden das Setup durchgehen und die grundlegenden Installationsverfahren von Django und die erforderlichen Abhängigkeiten sowie einige zusätzliche Bibliotheken / Erweiterungen detailliert beschreiben, damit Sie so schnell wie möglich mit der Entwicklung beginnen können.

Wir werden uns auch einen grundlegenden Workflow ansehen, den Sie verwenden können, sobald Ihre Projektstruktur eingerichtet ist.

Schauen Sie sich zum Schluss die folgenden Videos an:

Obwohl diese Videos spezifisch für Django 1.5 sind, helfen sie Ihnen, den grundlegenden Workflow für Django 1.6, 1.7 und 1.8 zu verstehen.

Tutorial-Anforderungen

Sie sollten über Python-Erfahrung verfügen und grundlegende Unix-Bash-Befehle kennen. Wenn Sie die Befehlszeile noch nie verwendet haben, machen Sie sich bitte mit den folgenden Befehlen vertraut:pwd,cd,ls,rm undmkdir.

Der Einfachheit halber verwenden alle Beispiele die Eingabeaufforderung im Unix-Stil:

$ python manage.py runserver

(Das Dollarzeichen ist nicht Teil des Befehls.)

Windows-Äquivalent:

C:\> python manage.py runserver

Konfiguration

Was Sie für eine grundlegende Django-Entwicklungsumgebung benötigen:

  1. Python 2.7.x oder 3.4.x.

  2. easy_install und Pip

  3. Git

  4. virtualenv

  5. Django

  6. Datenbank (SQLite, MySQL, PostgreSQL, MongoDB usw.)

  7. Süd (für Django-Versionen vor 1.7)

  8. Texteditor (Sublime, vim, Komodo, gedit)

Note: Dieses Tutorial verwendet Python Version 2.7.8.

Python

Unix-Umgebungen sind mit Python vorinstalliert. Führen Sie den folgenden Befehl aus, um Ihre Python-Version zu überprüfen:

$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2

Wenn Sie bereits eine 2.7.x-Version haben, fahren Sie mit dem nächsten Schritt fort. Wenn nicht,download und installieren Sie die neueste Version 2.7.x, die für Ihr Betriebssystem spezifisch ist.

easy_install und pip

Sowohl easy_install als auch pip sind Python-Paketmanager, die esmucheinfacher machen, Python-Pakete (und Paketabhängigkeiten) zu installieren und zu aktualisieren.

Um easy_install herunterzuladen, gehen Sie zuPython Package Index (PyPI). Sie müssen setuptools herunterladen, einschließlich easy_install. Laden Sie das Paket Ei (.egg) herunter und installieren Sie es direkt aus der Datei.

Pip ist ein Wrapper, der auf easy_install basiert. Sie müssen also easy_install einrichten und zuerst arbeiten, bevor Sie pip installieren können. Führen Sie nach der Einrichtung von easy_install den folgenden Befehl aus, um pip zu installieren:

$ easy_install pip

Git

Fürversion control verwenden wir git. Sie können Ihre aktuelle Version überprüfen, wenn Sie git bereits installiert haben, mit dem folgenden Befehl:

$ git --version
git version 2.3.0

Wenn Sie keine Version größer als 1.7.x installiert haben, geben Sie bittedownload die neueste Version an.

MySQL

SQLite ist mit Python vorinstalliert, und die meisten Tutorials verwenden SQLite. Lassen Sie uns also ein wenig Druck machen und stattdessen MySQL verwenden.

Installieren Sie zuerst MySQL vonhere.

Starten Sie als Nächstes den Server und richten Sie dann eine neue Datenbank und einen Benutzer ein:

$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye

virtualenv

Es ist üblich, für Ihre Python-Projekte einvirtualenv (virtuelle Umgebung) zu verwenden, um eigenständige Entwicklungsumgebungen (auch als "Sandboxes" bezeichnet) zu erstellen. Das Ziel von virtualenv ist es, zu verhindern, dass verschiedene Versionen von Bibliotheken / Paketen miteinander in Konflikt geraten.

Stellen Sie sich virtualenv als einen vollständig isolierten Container in Ihrem Computer vor, in dem Sie eine beliebige Version von Python verwenden und Bibliotheken / Pakete installieren können, ohne dass dies Auswirkungen auf diesen Container hat. Es ist wie ein isolierter, schalldichter Raum in Ihrem Haus, in dem Sie so laut schreien können, wie Sie möchten, über alles, was Sie wollen, und niemand außerhalb dieses Raums kann es hören.

Installieren Sie virtualenv mit dem folgenden Befehl:

$ pip install virtualenv

Django 1.5

Die wichtigsten neuen Funktionen, die am 26. Februar 2013 erstmals veröffentlicht wurden, sind:

  1. Configurable User Model: Anstatt gezwungen zu sein, Djangos Definition eines "Benutzers" zu verwenden, können Sie jetzt Ihr eigenes Benutzermodell rollen und benutzerdefinierte Felder erstellen, z. B. Links zu sozialen Profilen, Geburtsdatum, Lieblingsfarbe usw.

  2. Python 3 Support: Django schlägt vor, Python 3 noch nicht in der Produktion zu verwenden, da die Unterstützung noch "experimentell" ist. Diese Funktion ist jedoch für die gesamte Python-Community von enormer Bedeutung und trägt dazu bei, dass das viel verbesserte Python 3 noch mehr unter Druck gesetzt wird.

Möchten Sie die vollständigen Versionshinweise lesen? Überprüfen Sie die offiziellen Änderungen von Djangohere.

Die neueste Version erschien am 2. Januar 2015:v1.5.12

Schauen Sie sich die dazugehörigen Videos zu diesem Tutorial an:

Django installieren

Richten Sie Ihre Entwicklungsstruktur ein:

$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate

Sie sollten(env) vor Ihrer Eingabeaufforderung sehen,(env)$, um anzuzeigen, dass Sie in der virtuellen Umgebung "env" ausgeführt werden.

Geben Sie den folgenden Befehl ein, um die virtuelle Umgebung zu beenden:

$ deactivate

Reaktivieren Sie dann erneut, wenn Sie wieder arbeiten möchten.

Lassen Sie uns Django installieren:

$ pip install django==1.5.12

Sie können die Version überprüfen, indem Sie die folgenden Befehle ausführen:

>>>

$ python
>>> import django
>>> django.get_version()
'1.5.12'

Projektaufbau

Richten Sie das Django-Projekt ein

$ django-admin.py startproject my_django15_project

Dadurch wird ein neues Verzeichnis mit dem Namen "my_django15_project" mit dem grundlegenden Django-Verzeichnis und den grundlegenden Strukturen erstellt:

├── manage.py
└── my_django15_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Versionskontrolle

Bevor Sie mit der Entwicklung beginnen, stellen Sie Ihr Projekt unter Versionskontrolle. Fügen Sie zunächst eine neue Datei mit dem Namen.gitignore in Ihr Verzeichnis "django15_project" ein, mit der ignoriert wird, dass unnötige Dateien nicht zum Git-Repository hinzugefügt werden.

Fügen Sie der Datei Folgendes hinzu:

env
*.DS_Store
*.pyc
__pycache__

Initialisieren (oder erstellen) Sie jetzt ein neues Git-Repo und fügen Sie Ihre Änderungen zum Staging und dann zum lokalen Repo hinzu.

$ git init
$ git add -A
$ git commit -am "initial commit"

Wenn Sie BitBucket oder GitHub verwenden (sehr zu empfehlen), schieben Sie Ihre Dateien in Ihr zentrales Repo.

Datenbankeinstellungen

Installieren Sie zunächst MySQL-Python, einen Datenbank-Connector für Python:

$ pip install MySQL-python

Bearbeiten Sie die Dateisettings.pyin Ihrem Verzeichnis "my_django15_project", um die folgenden Informationen zu Ihrer zuvor eingerichteten Datenbank hinzuzufügen:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Erstellen Sie Ihre Datenbanktabellen und richten Sie einen Superuser ein:

$ cd my_django15_project
$ python manage.py syncdb

Starten Sie den Entwicklungsserver:

$ python manage.py runserver

Sie sollten die folgende Ausgabe sehen, wenn Django und die Datenbank korrekt eingerichtet sind:

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Richten Sie Ihren Browser aufhttp://127.0.0.1:8000 und Sie sollten den Django "Es hat funktioniert!" Sehen. Seite.

Beenden Sie den Server in Ihrem Terminal, indem Sie STRG-C drücken.

Süd

South wird zum Verwalten von Änderungen an Ihren Datenbanktabellen verwendet. Wenn Ihre Anwendung wächst und Sie beispielsweise einer bestimmten Tabelle ein Feld hinzufügen müssen, können Sie einfach Änderungen an der Datenbank über Migrationen mit South vornehmen. Es macht das Lebenmucheinfacher.

Installieren Sie South:

$ pip install south

Pip einfrieren

Nachdem alle Ihre Bibliotheken installiert sind, erstellen Sie mit dem folgenden Befehl einen Datensatz der installierten Bibliotheken im Verzeichnis "my_django15_project":

$ pip freeze > requirements.txt

Diesescommand ist unglaublich nützlich, wenn Sie Ihr Projekt von Grund auf neu erstellen und die genauen Bibliotheken / Versionen kennen müssen, die Sie installieren müssen.

Übernehmen Sie Ihre neuen Änderungen in Git.

Richten Sie Ihre Django-App ein

Erstellen Sie Ihre neue App:

$ python manage.py startapp myapp

Ihre Projektstruktur sollte nun folgendermaßen aussehen:

├── manage.py
├── my_django15_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Aktualisieren Sie INSTALLED_APPS in Ihrersettings.py-Datei:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

Hier haben wir den Administrator'django.contrib.admin' aktiviert und die Apps'myapp' und'south' hinzugefügt.

Öffnen Sieurls.py und kommentieren Sie diese drei Zeilen aus:

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

Synchronisieren Sie Ihre Datenbank erneut:

$ python manage.py syncdb

Erstellen Sie eine Datenbankmigrationsdatei mit South:

$ python manage.py schemamigration myapp --initial

Migrieren Sie die Datenbankänderungen:

$ python manage.py migrate myapp

Starten Sie den Server (python manage.py runserver) und navigieren Sie dann zuhttp://127.0.0.1:8000/admin. Geben Sie den Benutzernamen und das Passwort Ihres Superusers ein, um sich auf der Administrationsseite anzumelden.

Commit zu Git. Zum Beispiel:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"

Mit Git den richtigen Weg

NOTE: Dieser Abschnitt ist ziemlich fortgeschritten und völlig optional. Wenn Sie Django zum ersten Mal einrichten, können Sie diesen Abschnitt überspringen.

Wenn Sie GitHub oder Bitbucket nicht als zentrales Repo verwenden, sollten Sie einen separaten Zweig Ihres lokalen Repos für die Entwicklung erstellen.

Erstellen Sie zunächst ein neues Verzeichnis mit dem Namen "dev" in Ihrem Verzeichnis "django15_project", navigieren Sie in das neu erstellte Verzeichnis und klonen (kopieren) Sie dann Ihr gesamtes Django-Projekt:

$ git clone /path/to/your/project/

Zum Beispiel:/Users/michaelherman/desktop/django15_project

Dieser Befehl erstellt eine genaue Kopie Ihres Repos, die alle Ihre Commits und Zweige enthält. Entwickeln Sie immer aus diesem Verzeichnis heraus, indem Sie für jede größere Änderung an Ihrem Projekt separate Zweige erstellen:

$ git branch 

Nächster Wechsel zu diesem Zweig:

$ git checkout 

Mit diesem Befehl können Sie jederzeit überprüfen, welche Zweige verfügbar sind:

$ git branch

Übernehmen Sie nach Abschluss der Entwicklung Ihre Änderungen:

$ git add -A
$ git commit -am "some message"

Jetzt möchten Sie Ihre Änderungen mit dem Hauptzweig zusammenführen:

$ git checkout master
$ git merge 

Sie können Ihre Änderungen an GitHub oder Bitbucket PUSHEN, wenn Sie einen der beiden Dienste verwenden. Navigieren Sie abschließend zurück zu Ihrem Hauptproduktionsordner und ziehen Sie die Änderungen:

$ git pull

Beispiel:

(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull /Users/michaelherman/desktop/django15_project/dev/django15_project

Arbeitsablauf

Befolgen Sie nach dem Einrichten Ihrer App jedes Mal, wenn Sie Änderungen an Ihrer App vornehmen möchten, einen dieser einfachen Workflows:

Basic:

  1. Navigieren Sie zu Ihrem Projekt

  2. Aktivieren Sie virtualenv

  3. Sich entwickeln

  4. Änderungen festschreiben

  5. Bereitstellen

  6. Deaktivieren Sie virtualenv

Fortgeschrittene:

  1. Navigieren Sie zu Ihrem Projekt

  2. Aktivieren Sie virtualenv

  3. Erstellen und Auschecken eines neuen Git-Zweigs

  4. Sich entwickeln

  5. Änderungen festschreiben

  6. Führen Sie den neuen Zweig mit Ihrem Hauptzweig zusammen

  7. Ziehen Sie die Änderungen in den Produktionsordner

  8. Bereitstellen

  9. Deaktivieren Sie virtualenv

Prost! Irgendwelche Fragen? Vorschläge?

Erstellen wir ein einfachesapp!

Django 1.6

Die wichtigsten neuen Funktionen, die erstmals am 6. November 2013 veröffentlicht wurden, sind:

  1. Python 3 Support: Die Unterstützung für Python 3 ist jetzt offiziell und ohne Einschränkungen, sodass Sie es in der Produktion ausführen können.

  2. Improved Database Transaction Management: Die API ist schlanker, sauberer und einfacher, was Rollbacks und Fehlerbehandlung erheblich vereinfacht.

  3. Neuer Testläufer

  4. Persistente Datenbankverbindungen

Möchten Sie die vollständigen Versionshinweise lesen? Überprüfen Sie die offiziellen Änderungen von Djangohere.

Die neueste Version erschien am 18. März 2015:v1.6.11

Django installieren

Richten Sie Ihre Entwicklungsstruktur ein:

$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate

Sie sollten(env) vor Ihrer Eingabeaufforderung sehen,(env)$, um anzuzeigen, dass Sie in der virtuellen Umgebung "env" ausgeführt werden.

Geben Sie den folgenden Befehl ein, um die virtuelle Umgebung zu beenden:

$ deactivate

Reaktivieren Sie dann erneut, wenn Sie wieder arbeiten möchten.

Installieren Sie Django mit Pip, wenn Ihre virtuelle Umgebung aktiviert ist:

$ pip install django==1.6.11

Sie können die Version überprüfen, indem Sie die folgenden Befehle ausführen:

>>>

$ python
>>> import django
>>> django.get_version()
'1.6.11'

Projektaufbau

Richten Sie das Django-Projekt ein

$ django-admin.py startproject my_django16_project

Dadurch wird ein neues Verzeichnis mit dem Namen "my_django16_project" mit dem grundlegenden Django-Verzeichnis und den Strukturen erstellt:

├── manage.py
└── my_django16_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Versionskontrolle

Bevor Sie mit der Entwicklung beginnen, stellen Sie Ihr Projekt unter Versionskontrolle. Fügen Sie zunächst eine.gitignore-Datei in Ihr Verzeichnis "django16_project" ein, um zu verhindern, dass unnötige Dateien zum Git-Repository hinzugefügt werden.

Fügen Sie der Datei Folgendes hinzu:

env
*.DS_Store
*.pyc
__pycache__

Initialisieren (oder erstellen) Sie jetzt ein neues Git-Repo und fügen Sie Ihre Änderungen zum Staging und dann zum Repo hinzu.

$ git init
$ git add -A
$ git commit -am "initial"

Wenn Sie GitHub verwenden, schieben Sie Ihre Dateien auch in Ihr zentrales Repo.

Datenbankeinstellungen

Installieren Sie zuerst MySQL-Python, damit Python mit MySQL kommunizieren kann:

$ pip install MySQL-python

Bearbeiten Sie die Dateisettings.pyin Ihrem Verzeichnis "my_django16_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Erstellen Sie Ihre Datenbanktabellen und richten Sie einen Superuser ein:

$ cd my
$ python manage.py syncdb

Starten Sie den Entwicklungsserver:

$ cd my_django16_project
$ python manage.py runserver

Sie sollten die folgende Ausgabe sehen, wenn alles in Ordnung ist:

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Navigieren Sie zuhttp://127.0.0.1:8000 und Sie sollten das bekannte hellblaue "Es hat funktioniert!" Sehen. Seite.

Beenden Sie den Server, indem Sie CONTROL-C im Terminal drücken.

Süd

South wird zum Behandeln von Datenbankmigrationen verwendet, z. B. zum Vornehmen von Änderungen an Ihrem Datenbankschema.

Installieren Sie South:

$ pip install south

Pip einfrieren

Verwenden Sie bei installierten Abhängigkeiten den folgenden Befehl, um einen Datensatz mit ihren nachfolgenden Versionen im Verzeichnis "my_django16_project" zu erstellen:

$ pip freeze > requirements.txt

Diesescommand ist praktisch, wenn Sie Ihr Projekt von Grund auf neu erstellen müssen. Sie können einfachpip install -r requirements.txt ausführen, um alle Abhängigkeiten Ihres Projekts zu installieren.

Übernehmen Sie Ihre neuen Änderungen in Git.

Richten Sie Ihre Django-App ein

Erstellen Sie Ihre neue App:

$ python manage.py startapp myapp

Ihre Projektstruktur sollte nun folgendermaßen aussehen:

├── manage.py
├── my_django16_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── models.py
    ├── tests.py
    └── views.py

Aktualisieren Sie INSTALLED_APPS in Ihrersettings.py-Datei, um South sowie Ihre neue App einzuschließen:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

Sobald Siesyncdb ausführen, erkennt Django sowohlsouth als auchmyapp.

Öffnen Sieurls.py und kommentieren Sie diese drei Zeilen aus:

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

Synchronisieren Sie Ihre Datenbank erneut:

$ python manage.py syncdb

Erstellen Sie eine Datenbankmigrationsdatei mit South:

$ python manage.py schemamigration myapp --initial

Migrieren Sie die Datenbankänderungen:

$ python manage.py migrate myapp

Starten Sie den Server (python manage.py runserver) und navigieren Sie dann zuhttp://127.0.0.1:8000/admin. Geben Sie den Benutzernamen und das Passwort Ihres Superusers ein, um sich auf der Administrationsseite anzumelden. Dies ist nur eine Überprüfung der geistigen Gesundheit, um sicherzustellen, dass alles funktioniert.

Commit zu Git. Zum Beispiel:

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"

Alles bereit. Erstellen wir ein einfachesapp!

Django 1.7

Die wichtigsten neuen Funktionen, die erstmals am 2. September 2014 veröffentlicht wurden, sind:

  1. Database Migrations: Django verfügt jetzt über eine integrierte Unterstützung für Änderungen am Datenbankschema, die auf South basiert. Das ist groß!

  2. Verbessertesystem Überprüfungstools zur Validierung und Überprüfung Ihrer Projekte

  3. Refactoring, wie Django Anwendungen identifiziert und lädt

Möchten Sie die vollständigen Versionshinweise lesen? Überprüfen Sie die offiziellen Änderungen von Djangohere.

Die neueste Version erschien am 1. Mai 2015:v1.7.8

Django installieren

Richten Sie eine Entwicklungsstruktur ein:

$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate

Sie sollten(env) vor Ihrer Eingabeaufforderung sehen,(env)$, um anzuzeigen, dass Ihre virtuelle Umgebung aktiviert ist.

So deaktivieren Sie die virtuelle Umgebung:

$ deactivate

Reaktivieren Sie dann erneut, sobald Sie bereit sind, erneut mit der Entwicklung zu beginnen.

Installieren Sie Django mit Pip, wenn Ihre virtuelle Umgebung aktiviert ist:

$ pip install django==1.7.8

Sie können die Version überprüfen, indem Sie die folgenden Befehle ausführen:

>>>

$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>

Projektaufbau

Richten Sie das Django-Projekt ein

$ django-admin.py startproject my_django17_project

Dadurch wird ein neues Verzeichnis mit dem Namen "my_django17_project" mit dem grundlegenden Django-Verzeichnis und den Strukturen erstellt:

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Versionskontrolle

Bevor Sie mit der Entwicklung beginnen, stellen Sie Ihr Projekt unter Versionskontrolle. Fügen Sie zunächst eine.gitignore-Datei in Ihr Verzeichnis "django17_project" ein, um zu verhindern, dass unnötige Dateien zum Git-Repository hinzugefügt werden.

Fügen Sie der Datei Folgendes hinzu:

env
*.DS_Store
*.pyc
__pycache__

Initialisieren (oder erstellen) Sie jetzt ein neues Git-Repo und fügen Sie Ihre Änderungen zum Staging und dann zum Repo hinzu.

$ git init
$ git add -A
$ git commit -am "initial"

Wenn Sie GitHub verwenden, schieben Sie Ihre Dateien auch in Ihr zentrales Repo.

Datenbankeinstellungen

Installieren Sie zuerst MySQL-Python, damit Python mit MySQL kommunizieren kann:

$ pip install MySQL-python

Bearbeiten Siesettings.py in Ihrem Verzeichnis "my_django17_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Erstellen Sie Ihre Datenbanktabellen und richten Sie einen Superuser ein:

$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser

Starten Sie den Entwicklungsserver:

$ python manage.py runserver

Sie sollten die folgende Ausgabe sehen, wenn alles in Ordnung ist:

Performing system checks...

System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Navigieren Sie zuhttp://127.0.0.1:8000 und Sie sollten das bekannte hellblaue "Es hat funktioniert!" Sehen. Seite.

Beenden Sie den Server, indem Sie CONTROL-C im Terminal drücken.

Pip einfrieren

Verwenden Sie bei installierten Abhängigkeiten den folgenden Befehl, um einen Datensatz mit ihren nachfolgenden Versionen im Verzeichnis "my_django17_project" zu erstellen:

$ pip freeze > requirements.txt

Diesescommand ist praktisch, wenn Sie Ihr Projekt von Grund auf neu erstellen müssen. Sie können einfachpip install -r requirements.txt ausführen, um alle Abhängigkeiten Ihres Projekts zu installieren.

Übernehmen Sie Ihre neuen Änderungen in Git.

Richten Sie Ihre Django-App ein

Erstellen Sie Ihre neue App:

$ python manage.py startapp myapp

Ihre Projektstruktur sollte nun folgendermaßen aussehen:

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Aktualisieren Sie INSTALLED_APPS in Ihrensettings.py:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

Starten Sie den Server (python manage.py runserver) und navigieren Sie dann zuhttp://127.0.0.1:8000/admin. Geben Sie den Benutzernamen und das Passwort Ihres Superusers ein, um sich auf der Administrationsseite anzumelden. Dies ist nur eine Überprüfung der geistigen Gesundheit, um sicherzustellen, dass alles funktioniert.

Commit zu Git. Zum Beispiel:

$ git add -A
$ git commit -am "updated settings, created app, boom"

Alles bereit. Erstellen wir ein einfachesapp!

Django 1.8

Die wichtigsten neuen Funktionen, die erstmals am 1. April 2015 veröffentlicht wurden, sind:

  1. New PostgreSQL specific functionality: Dies fügte neuePostgreSQL-specific ModelFields hinzu - die Felder ArrayField, HStoreField und Range. Weitere Informationen finden Sie in unserem Blog-BeitragFun With Django’s New Postgres Features.

  2. Multiple template engines: Jetzt können Sie Jinja verwenden!

Möchten Sie die vollständigen Versionshinweise lesen? Überprüfen Sie die offiziellen Änderungen von Djangohere.

Die neueste Version erschien am 1. Mai 2015:v1.8.1

Django installieren

Richten Sie eine Entwicklungsstruktur ein:

$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate

Sie sollten(env) vor Ihrer Eingabeaufforderung sehen,(env)$, um anzuzeigen, dass Ihre virtuelle Umgebung aktiviert ist.

So deaktivieren Sie die virtuelle Umgebung:

$ deactivate

Reaktivieren Sie dann erneut, sobald Sie bereit sind, erneut mit der Entwicklung zu beginnen.

Installieren Sie Django mit Pip, wenn Ihre virtuelle Umgebung aktiviert ist:

$ pip install django==1.8.1

Sie können die Version überprüfen, indem Sie die folgenden Befehle ausführen:

>>>

$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>

Projektaufbau

Richten Sie das Django-Projekt ein

$ django-admin.py startproject my_django18_project

Dadurch wird ein neues Verzeichnis mit dem Namen "my_django18_project" mit dem grundlegenden Django-Verzeichnis und den Strukturen erstellt:

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Versionskontrolle

Bevor Sie mit der Entwicklung beginnen, stellen Sie Ihr Projekt unter Versionskontrolle. Fügen Sie zunächst eine.gitignore-Datei in Ihr Verzeichnis "django18_project" ein, um zu verhindern, dass unnötige Dateien zum Git-Repository hinzugefügt werden.

Fügen Sie der Datei Folgendes hinzu:

env
*.DS_Store
*.pyc
__pycache__

Initialisieren (oder erstellen) Sie jetzt ein neues Git-Repo und fügen Sie Ihre Änderungen zum Staging und dann zum Repo hinzu.

$ git init
$ git add -A
$ git commit -am "initial"

Wenn Sie GitHub verwenden, schieben Sie Ihre Dateien auch in Ihr zentrales Repo.

Datenbankeinstellungen

Installieren Sie zuerst MySQL-Python, damit Python mit MySQL kommunizieren kann:

$ pip install MySQL-python

Bearbeiten Siesettings.py in Ihrem Verzeichnis "my_django17_project":

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

Erstellen Sie Ihre Datenbanktabellen und richten Sie einen Superuser ein:

$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser

Starten Sie den Entwicklungsserver:

$ python manage.py runserver

Sie sollten die folgende Ausgabe sehen, wenn alles in Ordnung ist:

Performing system checks...

System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Navigieren Sie zuhttp://127.0.0.1:8000 und Sie sollten das bekannte hellblaue "Es hat funktioniert!" Sehen. Seite.

Beenden Sie den Server, indem Sie CONTROL-C im Terminal drücken.

Pip einfrieren

Verwenden Sie bei installierten Abhängigkeiten den folgenden Befehl, um einen Datensatz mit ihren nachfolgenden Versionen im Verzeichnis "my_django17_project" zu erstellen:

$ pip freeze > requirements.txt

Diesescommand ist praktisch, wenn Sie Ihr Projekt von Grund auf neu erstellen müssen. Sie können einfachpip install -r requirements.txt ausführen, um alle Abhängigkeiten Ihres Projekts zu installieren.

Übernehmen Sie Ihre neuen Änderungen in Git.

Erstellen Sie eine App

Erstellen wir eine einfache, einseitige App, diemarkdown zum Anzeigen von Text verwendet.

Konfiguration

Installieren Sie bei aktiviertem virtualenv das folgende Paket, um den Markdown zu rendern.

$ pip install django-markdown-deux

Aktualisieren Sie die Anforderungsdatei, um die neue Abhängigkeit aufzunehmen:

$ pip freeze > requirements.txt

Fügen Siesettings.py "markdown_deux" hinzu:

INSTALLED_APPS = (

  ... snip ...

  'markdown_deux',
)

Erstellen Sie ein neues Verzeichnis in der Datei settings.py * von „my_django1_project” directory called “templates”, and then add the path to the:

import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'),
)

Ihre Projektstruktur sollte aussehen wie ...

Dies für Django 1.5 und 1.6:

├── manage.py
├── my_django1*_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

Oder dies für Django 1.7:

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

Ansichten und URLs

Wir werden derModel-View-Controller (MVC) Architekturstruktur folgen. Django-Projekte sind logisch um diese Architektur herum organisiert. Djangosarchitecture unterscheidet sich jedoch geringfügig darin, dass die Ansichten als Controller fungieren. Projekte sind also tatsächlich in einer Model-Template-Views-Architektur (MTV) organisiert. Ja, das ist verwirrend.

Ansichten

Fügen Sie der Dateiviews.pyden folgenden Code hinzu:

from django.shortcuts import render_to_response
from django.template import RequestContext


def index(request):
    return render_to_response('index.html')

Diese Funktion verwendet den Parameterrequest, ein Objekt, das Informationen über den Benutzer enthält, der die Seite vom Browser anfordert. Die Antwort der Funktion besteht darin, einfach die Vorlage vonindex.htmlzu rendern.

URLs

Als nächstes müssen wir derurls.py-Datei ein neues Muster hinzufügen:

urlpatterns = patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'myapp.views.index')
)

Weitere Informationen zum Generieren von URL-Mustern finden Sie inviewin der offiziellen Django-Dokumentation.

Vorlagen

Schließlich müssen wir die Vorlageindex.htmlerstellen. Erstellen Sie eine neue Datei mit dem Namenindex.html im Vorlagenverzeichnis und fügen Sie den gefundenen Codehere hinzu.

Starten Sie den Server. Wie sieht das aus Fügen wir einige Stile hinzu.

Ersetzen Sie den vorherigen Code durch den Codehere.

Besser?

Fazit

Fügen Sie nach Belieben Stile und Inhalte hinzu. Kehren Sie dann zum Abschnitt Workflow zurück, um den Entwicklungsprozess abzuschließen. Wenn Sie Hilfe benötigen, kaufen Sie bitteReal Python. Oder tun Sie es trotzdem, um dieses Open Source-Projekt zu unterstützen. Vielen Dank. Prost!.

Zusammenfassung Workflow

Das Folgende ist ein grundlegender Workflow, den Sie als Kurzreferenz für die Entwicklung eines Django-Projekts verwenden können.

Konfiguration

  1. Erstellen und aktivieren Sie in einem neuen Verzeichnis eine virtuelle Umgebung.

  2. Installieren Sie Django.

  3. Erstellen Sie Ihr Projekt:django-admin.py startproject <name>

  4. Erstellen Sie eine neue App:python manage.py startapp <appname>

  5. Fügen Sie Ihre App dem Tupel INSTALLED_APPS hinzu.

Fügen Sie grundlegende URLs und Ansichten hinzu

  1. Ordnen Sie dieurls.py-Datei Ihres Projekts der neuen App zu.

  2. Erstellen Sie in Ihrem App-Verzeichnis eineurls.py-Datei, um die URLs Ihrer App zu definieren.

  3. Fügen Sie Ansichten hinzu, die den URLs zugeordnet sind, inviews.pyIhrer App. Stellen Sie sicher, dass sie das ObjektHttpResponsezurückgeben. Abhängig von der Situation müssen Sie möglicherweise auch das Modell (die Datenbank) abfragen, um die vom Endbenutzer angeforderten erforderlichen Daten zurückzugewinnen.

Vorlagen und statische Dateien

  1. Erstellen Sie ein Verzeichnistemplates undstatic in Ihrem Projektstamm.

  2. Aktualisieren Siesettings.py, um die Pfade zu Ihren Vorlagen einzuschließen.

  3. Fügen Sie dem Verzeichnistemplateseine Vorlage (HTML-Datei) hinzu. In diese Datei können Sie die statische Datei mit -{% load static %} und{% static "filename" %} aufnehmen. Möglicherweise müssen Sie auch die vom Benutzer angeforderten Daten übergeben.

  4. Aktualisieren Sie die Dateiviews.pynach Bedarf.

Modelle und Datenbanken

  1. Aktualisieren Sie das Datenbankmodul aufsettings.py (falls erforderlich, da standardmäßig SQLite verwendet wird).

  2. Erstellen Sie eine neue Migration und wenden Sie sie an.

  3. Erstellen Sie einen Superuser.

  4. Fügen Sie in jeder App, auf die Sie im Admin zugreifen möchten, eineadmin.py-Datei hinzu.

  5. Erstellen Sie Ihre Modelle für jede App.

  6. Erstellen Sie eine neue Migration und wenden Sie sie an. (Tun Sie dies immer dann, wenn Sieanyan einem Modell ändern).

Formen

  1. Erstellen Sie in der App eineforms.py-Datei, um formularbezogene Klassen zu definieren. Definieren Sie hier Ihre ModelForm-Klassen.

  2. Hinzufügen oder Aktualisieren einer Ansicht zum Behandeln der Formularlogik - z. B. Anzeigen des Formulars, Speichern der Formulardaten, Benachrichtigen des Benutzers über Validierungsfehler usw.

  3. Fügen Sie eine Vorlage hinzu oder aktualisieren Sie sie, um das Formular anzuzeigen.

  4. Fügen Sie einurlpattern in dieurls.py-Datei der App für die neue Ansicht ein.

Benutzer Registration

  1. Erstellen Sie eine UserForm

  2. Fügen Sie eine Ansicht zum Erstellen eines neuen Benutzers hinzu.

  3. Fügen Sie eine Vorlage hinzu, um das Formular anzuzeigen.

  4. Fügen Sie ein URL-Muster für die neue Ansicht hinzu.

Benutzer-Anmeldung

  1. Fügen Sie eine Ansicht für die Verarbeitung von Benutzeranmeldeinformationen hinzu.

  2. Erstellen Sie eine Vorlage, um ein Anmeldeformular anzuzeigen.

  3. Fügen Sie ein URL-Muster für die neue Ansicht hinzu.

Richten Sie die Vorlagenstruktur ein

  1. Suchen Sie die gemeinsamen Teile jeder Seite (d. H. Kopfzeile, Seitenleiste, Fußzeile).

  2. Fügen Sie diese Teile einer Basisvorlage hinzu

  3. Erstellen Sie bestimmte. Vorlagen, die der Basisvorlage inhärent sind.

Django Learning Resources Pack

Django ist ein erstaunliches Webentwicklungs-Framework, das wir jeden Tag bei Real Python verwenden (realpython.com wird von Django unterstützt).

Django kann Sie zu einem hochproduktiven Python-Webentwickler machen - wenn Sie die Grundlagen richtig verstehen und einige der häufigsten Fallstricke vermeiden.

Aus diesem Grund haben wir dieses kostenlose "Django-Ressourcenpaket" zusammengestellt, mit dem Sie tiefer graben können:

Free Bonus:Click here to get access to a free Django Learning Resources Guide (PDF) zeigt Ihnen Tipps und Tricks sowie häufige Fallstricke, die Sie beim Erstellen von Python + Django-Webanwendungen vermeiden sollten.