Django
Struktura projektu
Szukaj…
Repozytorium> Projekt> Witryna / Konf
Dla projektu Django z requirements
i deployment tools
pod kontrolą źródła. Ten przykład opiera się na koncepcjach z Two Scoops of Django . Opublikowali szablon :
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
Tutaj apps
i foldery conf
zawierają odpowiednio user created applications
i core configuration folder
dla projektu.
foldery static
i templates
w katalogu project
zawierają odpowiednio pliki statyczne i pliki html markup
które są używane globalnie w całym projekcie.
Wszystkie blog
folderów aplikacji, accounts
i search
mogą również (głównie) zawierać foldery static
i templates
.
Pliki statyczne i szablony w przestrzeni nazw w aplikacjach django
folder static
i templates
w aplikacjach może również zawierać folder o nazwie ex. blog
jest to konwencja stosowana w celu zapobiegania zanieczyszczeniu przestrzeni nazw, dlatego odwołujemy się do plików takich jak /blog/base.html
a nie do /base.html
co zapewnia większą przejrzystość pliku, do którego się odwołujemy, i zachowuje przestrzeń nazw.
Przykład: folder templates
w blog
i aplikacjach do search
zawiera plik o nazwie base.html
, a podczas odwoływania się do pliku w views
aplikacja myli się, który plik ma zostać wyświetlony.
(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")