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")