Christian Müller – Letzte Änderung: 16.01.2014 14:41 Uhr
Django project in Virtual Environment with bootstrapped_admin and MySQL from scratch in PyCharm3
Eine ausführliche Schritt für Schritt Anleitung, ein Django Projekt mit meinen präferierten Paketen und Settings in PyCharm3 zu starten.
Voraussetzungen
Angemerkt sei, daß ich auf meinen Systemen zwecks einfacherem Deployment jeweils einen Symlink von /env
in den Development Folder meines Users habe.
Des weiteren weiss ich, dass das ganze mit folgenden Komponenten funktioniert, was nicht bedeutet, daß andere Konstellationen nicht zum Erfolg führen...
Meine Installation sieht wie folgt aus:
- PyCharm3
- OSX mit Homebrew
- Python 2.x (
brew install python
) - einen funktionierenden MySQL Server und zugehörige Accountdaten sowie eine bereits existierende Datenbank (z.B. XAMPP)
PyCharm3
Projekt und Virtual Environment anlegen
File -> New Project...
Zuerst Interpreter definieren:
- Neben der Interpreter Auswahl auf "..."
- ca. Mitte des Fensters auf das Python Symbol ("Create Virtual Environment")
- Name entspricht Projektname (lowercase)
- Location /env/Projektname(lowercase)
- Base Interpreter (Bei mir umbenannt in
brew py 2.x
, per default liegt das brew(homebrew) Python unter/usr/local/bin/python2.7
) - OK
- In der ENV Übersicht das neue Environment auswählen und Mitte des Fensters auf bearbeiten klicken
- Umbenennen in Projektname (Python 2.x.x virtualenv at... entfernen)
- Apply
- OK
Konfiguration Projektparameter
- Project Name: erstmal leer lassen
- Location: /env/PROJEKTNAME (Unterordner Projektname wird an Pfad angefügt)
- Project type: Django Project
- Interpreter Projektname (Das eben angelegte Environment)
- Install Django aktivieren
- JETZT Project Name eingeben: wie oben (Environment)
Der Pfad sollte nun folgendermassen aussehen
/env/ENVNAME/PROJEKTNAME
In meinen Settings sind ENVNAME und PROJEKTNAME jeweils identisch, es sieht also beispielsweise so aus:
/env/beispielprojekt/beispielprojekt
- OK
- Enable Django admin aktivieren
- Projekt fertigstellen und öffnen: Application Name leer lassen und OK drücken
- Optional statt dessen: Erste App anlegen durch Eingabe Application Name, OK drücken
Django
Installation Pakete
Tools / Open Terminal (erst seit PyCharm3)
source ../bin/activate
pip install django-admin-bootstrapped south django-autocomplete-light django_extensions django-taggit mysql-python
Sollte der Fehler EnvironmentError: mysql_config not found auftreten, findet man unter zentonic: pip install mysql-python fails with EnvironmentError: mysql_config not found eine Lösung für Linux und OSX.
Projekt-Settings
in /env/ENVNAME/PROJECTNAME/PROJECTNAME die Datei settings.py
anpassen:
INSTALLED_APPS:
'autocomplete_light',
'django_extensions',
'south',
'taggit',
VOR django.contrib.admin
:
'django_admin_bootstrapped',
Database Settings
Als Datenbank MySQL wählen.
Begründung:
SQLite kann nachträgliche Änderungen an Datenbank- und Tabellenstrukturen nur rudimentär umsetzen. Löschen / entfernen von Spalten oder Tabellen ist gar nicht möglich. Während der Projektanfangsphase müssen jedoch oftmals grundlegende Strukturen geändert und angepasst werden. Dies wird von MySQL in Verbindung mit SOUTH gut unterstützt.
Die vorhandenen Settings (DATABASE={}…) auskommentieren und ersetzen durch:
# Database Config zwecks Deploying ausgelagert
from databasehostdef import *
Datei databasehostdef.py anlegen:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'PROJECTNAME', # Or path to database file if using sqlite3.
'USER': 'USER', # Not used with sqlite3.
'PASSWORD': 'PASSWORD', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
Language and Time
LANGUAGE_CODE = 'DE-de'
TIME_ZONE = 'Europe/Berlin'
Staticfiles (für django-admin-bootsrapped)
STATICFILES_DIRS = (
"/env/ENVNAME/PROJECTNAME/bootstrap",
)
Django init
Weiter gehts wieder im vorhin geöffneten Terminal:
python manage.py startapp APPNAME
In settings.py
die App den INSTALLED_APPS hinzufügen
python manage.py syncdb
Admin User anlegen, wenn dazu aufgefordert.
python manage.py schemamigration APPNAME --initial
python manage.py schemamigration django_extensions --initial
python manage.py schemamigration taggit --initial
python manage.py migrate APPNAME
python manage.py migrate django_extensions
python manage.py migrate taggit
Table allready exist
Kommt dieser Fehler bei einem migrate, hilft
python manage.py migrate APPNAME --fake
Erster Start
python manage.py runserver 0.0.0.0:1234
Test per http://127.0.0.1:1234
Administration per http://127.0.0.1:1234/admin
Kommentare für diesen Artikel noch nicht freigeschaltet.
Bitte eine Email an kommentare@zentonic.org mit Betreff "Kommentare für Post 71"