Django
Project structuur
Zoeken…
Repository> Project> Site / Conf
Voor een Django-project met requirements
en deployment tools
onder bronbeheer. Dit voorbeeld bouwt voort op concepten uit de Two Scoops of Django . Ze hebben een sjabloon gepubliceerd :
repository/
docs/
.gitignore
project/
apps/
blog/
migrations/
static/ #( optional )
blog/
some.css
templates/ #( optional )
blog/
some.html
models.py
tests.py
admin.py
apps.py #( django 1.9 and later )
views.py
accounts/
#... ( same as blog )
search/
#... ( same as blog )
conf/
settings/
local.py
development.py
production.py
wsgi
urls.py
static/
templates/
deploy/
fabfile.py
requirements/
base.txt
local.txt
README
AUTHORS
LICENSE
Hier bevatten apps
en conf
mappen respectievelijk door de user created applications
en de core configuration folder
voor het project.
static
mappen en templates
in de project
bevatten respectievelijk statische bestanden en html markup
die wereldwijd in het hele project worden gebruikt.
En alle app-mappen blog
, accounts
en search
kunnen ook (meestal) static
mappen en templates
bevatten.
Naamruimte voor statische en sjabloonbestanden in django-apps
static
map en de templates
in de apps moeten mogelijk ook een map bevatten met de naam van de app ex. blog
Dit is een conventie die wordt gebruikt om vervuiling van de naamruimte te voorkomen, dus verwijzen we naar de bestanden zoals /blog/base.html
plaats van /base.html
Dit geeft meer duidelijkheid over het bestand waarnaar we verwijzen en behoudt de naamruimte.
Voorbeeld: templates
map binnen blog
en search
toepassingen bevat een bestand met de naam base.html
, en bij verwijzingen naar het bestand in views
uw toepassing in de war raakt in welk bestand te maken.
(Project Structure)
.../project/
apps/
blog/
templates/
base.html
search/
templates/
base.html
(blog/views.py)
def some_func(request):
return render(request, "/base.html")
(search/views.py)
def some_func(request):
return render(request, "/base.html")
## After creating a folder inside /blog/templates/(blog) ##
(Project Structure)
.../project/
apps/
blog/
templates/
blog/
base.html
search/
templates/
search/
base.html
(blog/views.py)
def some_func(request):
return render(request, "/blog/base.html")
(search/views.py)
def some_func(request):
return render(request, "/search/base.html")