Django
Estructura del proyecto
Buscar..
Repositorio> Proyecto> Sitio / Conf.
Para un proyecto Django con requirements
y deployment tools
bajo control de código fuente. Este ejemplo se basa en los conceptos de las Dos cucharadas de Django . Han publicado una plantilla :
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
Aquí, las apps
y las carpetas conf
contienen user created applications
y core configuration folder
para el proyecto respectivamente.
static
carpetas static
y de templates
en el directorio del project
contienen archivos estáticos y archivos de html markup
, respectivamente, que se usan globalmente a lo largo del proyecto.
Y todas las carpetas de aplicaciones de blog
, accounts
y search
también pueden (en su mayoría) contener carpetas static
y de templates
.
Espacios de nombres, archivos estáticos y plantillas en aplicaciones django.
static
carpeta static
y de templates
en las aplicaciones también debe contener una carpeta con el nombre de la aplicación ex. blog
es una convención que se utiliza para evitar la contaminación del espacio de nombres, por lo que hacemos referencia a los archivos como /blog/base.html
lugar de /base.html
que proporciona más claridad sobre el archivo al que hacemos referencia y conserva el espacio de nombres.
Ejemplo: templates
carpeta de templates
dentro del blog
y las aplicaciones de search
contiene un archivo con el nombre base.html
, y al hacer referencia al archivo en views
su aplicación se confunde en qué archivo se procesa.
(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")