Installation

Dieses Dokument setzt voraus, dass Sie grundsätzlich mit der Entwicklung und den tools von Python und Django vertraut sind. Falls nein, lesen Sie bitte zuerst pip, virtualenv und virtualenvwrapper. Ein einfaches Verständnis davon ist ausreichend.

Voraussetzungen

  • Python 2.7, 3.3 oder 3.4

Alle anderen Abhängigkeiten werden durch den django Organice Installer aufgelöst. Die meisten dieser Abängigkeiten sind bewusst nicht auf ihre Versionsnummer gepinned, um einen liberalen Upgrade-Pfad zu erlauben. Bestätigte, funktionierende Abhängigkeiten sind im CHANGELOG für jedes Release dokumentiert.

django Organice installieren

  1. Wir empfehlen, ein Virtual Environment für den Betrieb von django Organice anzulegen:

    $ mkvirtualenv example
    $ workon example
    

    Die Eingabeaufforderung verändert sich in etwas wie (example)~$, um anzuzeigen, dass Ihr neues Virtual Environment aktiv ist.

  2. Am einfachsten klappt die Installation mit pip:

    $ pip install django-organice
    

    Damit wird das neueste django Organice-Paket aus dem Internet heruntergeladen und alle Abhängigkeiten automatisch installiert.

    Wenn Sie Entwickler sind, möchten Sie vielleicht den letzten Stand von django Organice als Quellcode ziehen: (tun Sie das nicht als einfacher Benutzer)

    $ git clone https://github.com/Organice/django-organice.git
    $ cd django-organice
    $ python setup.py install
    

    oder alternativ mit pip:

    $ pip install git+https://github.com/Organice/django-organice.git#egg=django-organice
    
  3. Installieren Sie den Datenbankadapter, der zu Ihrer Datenbank passt (PostgreSQL psycopg2, MySQL MySQL-python, Oracle cx_Oracle, etc.), z.B.

    $ pip install psycopg2
    

    Das Django-Projekt empfiehlt PostgreSQL.

Bemerkung

Sie können diesen Schritt überspringen, wenn Sie SQLite verwenden möchten, z.B. zur Evaluierung von django Organice.

  1. Führen Sie den Organice Setup-Befehl zum Erstellen Ihres neuen Projektes aus: (z.B. example)

    $ organice-setup example
    
  2. Bearbeiten Sie Ihre settings in example/settings/common.py, example/settings/develop.py, etc. Ziehen Sie die Django documentation zu Rate, wenn Sie mit bestimmten settings nicht vertraut sind. Die develop settings werden von Ihrem Projekt standardmäßig benutzt (lokale Entwicklung), common wird in alle Profile eingebunden.

  3. Initialisieren der Datenbank:

    $ python manage.py organice bootstrap
    

    Damit wird Ihre Datenbank vorbereitet und ein paar Beispiel-Inhalte eingepflegt. Wenn Sie bevorzugen, mit einer sauberen Datenbank zu starten, führen Sie stattdessen nur migrate:

    $ python manage.py migrate
    
  4. Ihr Django-Projekt starten:

    $ python manage.py runserver
    

    Sie können mit Ihrem Web-Browser jetzt die Adresse http://127.0.0.1:8000/ öffnen und beginnen, Ihr Projekt lokal zu entwickeln.

Bemerkung

Wenn Sie vorhaben, Ihre Inhalte lokal zu erstellen, stellen Sie sicher, dass Sie die gleiche Datenbank-Engine für lokalen Entwicklung und Produktion verwenden. Ihr Plan, den gesamten Datenbankinhalt von der Entwicklungsumgebung in die Produktionsumgebung zu bewegen wird Ihnen sonst größere Kopfschmerzen bereiten. Und, verwenden Sie Sqlite nur zum Evaluieren!

Konfiguration zu Beginn

  1. Folgen Sie den Anweisungen des django Organice Installers organice-setup, sobald das Setup abgeschlossen ist. Sie müssen ein paar Werte in Ihren Projekt-settings anpassen!

  2. Wenn Sie auf Ihrer Website eine andere Sprache als Englisch verwenden möchten oder wenn Sie mehrere Sprachen verwenden wollen: Passen Sie die Werte von LANGUAGE_CODE und LANGUAGES an und setzen Sie USE_I18N = True in Ihren Projekt-settings.

  3. Nach der Installation ist django Organice konfiguriert, wenn Sie aber nicht den bootstrap Management Command ausgeführt haben, ist die Datenbank ohne Inhalte für Ihre Website. Sie können etwas an Beispiel-Inhalten und andere Daten hinzufügen, indem Sie einen oder alle der folgenden Befehle ausführen:

    $ python manage.py organice initauth  # prepare social auth provider configuration
    $ python manage.py organice initcms   # add pages for your website
    $ python manage.py organice initblog  # add blog categories and posts
    
  4. Alternativ legen Sie Ihre ersten Seiten, Blog-Einträge und Newsletter-Daten händisch an:

    • Fügen Sie einige Seiten in der Django-Administration unter Cms > Pages hinzu und veröffentlichen Sie Ihre Änderungen.

    • Gehen Sie auf Ihre neue Website und befüllen Sie Ihre neuen Seiten mit Inhalt, indem Sie das Front-end Editing-Feature verwenden.

    • Gehen Sie zu /blog/ auf Ihrer Website und legen Sie Blog-Einträge an.

    • Fügen Sie in der Django Administration unter Newsletter > Contacts einen Benutzer hinzu.

    • Fügen Sie localhost (oder geeigneten Server) zu Newsletter > SMTP servers hinzu.

    • Um das Subscribe-Feature auf der Website zu aktivieren (von /newsletter/subscribe), fügen Sie eine Liste zu Newsletter > Mailing lists hinzu.

    • Erstellen Sie nun Ihren ersten Newsletter unter Newsletter > Newsletters.

    • Um Vorlagen zu Emencia Newsletter hinzuzufügen, ziehen Sie bitte den diesbezüglichen Abschnitt in der TinyMCE 3.x documentation zu Rate.

  5. Damit das Versenden von Newslettern funktioniert, müssen Sie einen cronjob konfigurieren, der auf python manage.py send_newsletter jede halbe Stunde pollt. Wenn das für Sie gerade Spanisch war, fragen Sie bitte Ihren Server Admin um Hilfe. Sie weiß garantiert Bescheid!

Deployment in Produktion

Während der Installation hat organice-setup 3 unterschiedliche Umgebungen vorbereitet, die Ihnen beim Deployment helfen:

example
├── settings
│   ├── __init__.py
│   ├── common.py
│   ├── develop.py
│   ├── staging.py
│   └── production.py

Dieses modularisierte Setup ist in Lösung 2 von Tommy Jarnac’s Blog-Eintrag zu Django settings best practices [1] beschrieben. Die develop settings sind standardmäßig aktiv (für lokale Entwicklung), common wird in alle Profile eingebunden.

Für ein Deployment in alle Umgebungen ungleich develop muss das verwendete settings-Modul durch das Setzen der Django Umgebungsvariablen DJANGO_SETTINGS_MODULE festgelegt werden. Zum Beispiel, wenn Sie Apache als Ihren Django Webserver verwenden, passen Sie Ihre Apache-Konfiguration für example an mit:

SetEnv DJANGO_SETTINGS_MODULE example.settings.production

Bemerkung

Um unterschiedliche settings lokal zu testen, können Sie den Django Webserver mit der --settings Option starten:

$ python manage.py runserver --settings=example.settings.staging

Zu guter Letzt, stellen Sie sicher, dass Sie die deployment checklist des Django-Projekts konsultiert haben und den beschriebenen Best Practices folgen.

[1]

David Cramer von DISQUS hat eine ähnliche Lösung unter http://justcramer.com/2011/01/13/settings-in-django/ beschrieben