Django
Projektstruktur
Sök…
Förvar> Projekt> Site / Conf
För ett Django-projekt med requirements och deployment tools under källkontroll. Detta exempel bygger på koncept från Django's Two Scoops . De har publicerat en mall :
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
Här apps och conf mappar innehåller user created applications och core configuration folder för projektet respektive.
static mappar och templates i project innehåller statiska filer respektive html markup som används globalt under hela projektet.
Och alla appmappar blog , accounts och search kan också (mestadels) innehålla static mappar och templates .
Statiska namngivningsavstånd och mallar i django-appar
static och templates i apparna kan också innehålla en mapp med namnet på appen ex. blog detta är en konvention som används för att förhindra namnutrymme, så vi refererar till filerna som /blog/base.html snarare än /base.html som ger mer tydlighet om filen vi refererar till och bevarar namnutrymmet.
Exempel: templates mapp inne blog och search program innehåller en fil med namn base.html , och när refererar filen i views din ansökan blir förvirrad i vilken fil att göra.
(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")