Django
Structure du projet
Recherche…
Repository> Project> Site / Conf
Pour un projet Django avec des requirements
et des deployment tools
sous contrôle de source. Cet exemple s'appuie sur les concepts des deux scoops de Django . Ils ont publié un modèle :
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
Ici, les apps
et les dossiers de conf
contiennent respectivement user created applications
et le core configuration folder
pour le projet.
static
dossiers static
et templates
dans le répertoire du project
contiennent respectivement des fichiers statiques et des fichiers de html markup
qui sont utilisés globalement tout au long du projet.
De plus, tous les blog
, accounts
et search
dossiers d’application peuvent également contenir (principalement) des dossiers static
et des templates
.
Noms de fichiers statiques et de fichiers dans les applications django
static
dossier static
et templates
dans les applications peut également contenir un dossier portant le nom de l'application ex. blog
Ceci est une convention utilisée pour empêcher la pollution des espaces de noms, donc nous référençons les fichiers tels que /blog/base.html
plutôt que /base.html
qui fournit plus de clarté sur le fichier que nous référençons et préserve l'espace de noms.
Exemple: le dossier de templates
dans search
applications de blog
et de search
contient un fichier nommé base.html
, et lorsque vous référencez le fichier dans les views
votre application devient confuse dans quel fichier elle doit être rendue.
(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")