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