2009-06-25 14 views
8

So habe ich ein django Projekt, das ich gerade erstellt namens ‚coolprojectsite‘ die Verzeichnisstruktur etwas sieht wie folgt aus:django Verzeichnis Layout Erklärung

* media (dir) 
* mytemplates (dir) 
* * admin (dir) 
* * coolprojects (dir) 
* coolprojectsite (dir) 
* * coolproject (dir) 
* * * __init__.py 
* * * admin.py 
* * * models.py 
* * * tests.py 
* * * urls.py 
* * * views.py 
* * __init__.py 
* * settings.py 
* * urls.py 

Also habe ich ein paar Fragen.

1) Ist coolprojectsite das 'Projekt' coolproject die

3) 'Medien' 'Anwendung' betrachtet wird

2) betrachtet die CSS enthält, Javascript-Dateien usw. Ist das der richtige Ort für sie ? Es ist außerhalb des Projekts.

4) 'Mytemplates' hat bestimmte Dateien, die Django-Markup enthalten (z. B. {%%}) und auf die zugegriffen wird, weil meine urls.py auf sie zeigt. Ist es richtig, diese Dateien außerhalb des Projekts zu haben?

5) Wenn ich eine beliebige Javascript-Datei (sprich jquery) einfügen möchte, erstelle ich einfach einen neuen Eintrag in urls.py (wenn es der in coolprojectsite oder coolproject ist) und verlinke dann URL?

+0

Frage. Würdest du nicht die Medien/und CSS usw. über die Webroot und alle anderen unten setzen? – tristanbailey

Antwort

9
  1. "Projekt" ist nicht wirklich ein nützliches Konzept in Django. Das Django-Tutorial erwähnt dies, aber die Entwickler haben häufig auf Mailinglisten erwähnt, dass sie sich gewünscht hätten, sie nicht eingeführt zu haben. Grundsätzlich ist ein Projekt nur ein Container für Ihren Code - tatsächlich kann der Code jedoch irgendwo auf dem Python-Pfad existieren.

  2. Ja, und Sie können mehrere Anwendungen haben, solange sie alle zu INSTALLED_APPS in settings.py hinzugefügt werden.

  3. Es spielt keine Rolle, wo sie leben. Sie werden etwas brauchen, um sie zu bedienen - in der Entwicklung kann es mit dem eingebauten Server gemacht werden, aber in der Produktion müssen Sie Apache (oder was auch immer) direkt auf die Dateien zeigen.

  4. spielt keine Rolle. Es sind die Ansichten, die die Vorlagen laden, und wiederum, solange TEMPLATE_DIRS in settings.py richtig eingestellt ist.

  5. Nein, absolut nicht. Wie bereits erwähnt, befinden sich statische Assets in Ihrem Medienordner und werden nicht über Django bereitgestellt.

+6

Ich persönlich finde "Projekt" ein nützliches Konzept. An Projekten arbeite ich im Allgemeinen - das ist das Ergebnis. Also behalte ich mein Verzeichnis für statische Ressourcen und mein Vorlagenverzeichnis in einem Verzeichnis mit Einstellungsdateien, root URLconf, oft ein paar einmalige projektspezifische Apps, setze alles unter Versionskontrolle und nenne es "das Projekt". Ich glaube nicht, dass damit etwas nicht stimmt. Das Entscheidende ist, zu erkennen, dass es in Django nichts "Magisches" über ein bestimmtes Verzeichnis gibt, man kann die Dinge ziemlich gut arrangieren, passt aber zu Ihrem Workflow und lässt es funktionieren. –