Django
Структура проекта
Поиск…
Репозиторий> Проект> Сайт / Конф.
Для проекта Django с requirements
и deployment tools
под контролем источника. Этот пример основан на концепциях из двух совпадений Django . Они опубликовали шаблон :
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
Здесь apps
и папки conf
содержат user created applications
и core configuration folder
для проекта соответственно.
static
и templates
папки в каталоге project
содержат статические файлы и файлы html markup
соответственно, которые используются во всем мире во всем мире.
И все blog
приложений, accounts
и search
могут также (в основном) содержать static
и templates
папки.
Namespacing статические и шаблонные файлы в приложениях django
static
и templates
в приложениях может также содержать папку с именем приложения ex. blog
это соглашение, используемое для предотвращения загрязнения пространства имен, поэтому мы /blog/base.html
на файлы, такие как /blog/base.html
а не на /base.html
который обеспечивает большую ясность в отношении файла, на который мы /base.html
и сохраняет пространство имен.
Пример: папка templates
внутри blog
и search
приложений содержит файл с именем base.html
, а при обращении к файлу в views
ваше приложение запутывается в каком файле для рендеринга.
(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")