Ricerca…


Deposito> Progetto> Sito / Conf

Per un progetto Django con requirements e deployment tools sotto il controllo del codice sorgente. Questo esempio si basa su concetti tratti dai due scoop di Django . Hanno pubblicato un modello :

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

Qui le apps e le cartelle conf contengono rispettivamente user created applications e la core configuration folder per il progetto.

static cartelle static e di templates nella directory del project contengono rispettivamente file statici e file html markup che vengono utilizzati globalmente in tutto il progetto.

E tutte le cartelle di app blog , accounts e search possono anche (principalmente) contenere cartelle static e templates .

Namespacing statico e file di modelli in applicazioni django

static cartella static e di templates nelle app potrebbe anche contenere una cartella con il nome dell'app ex. blog questa è una convenzione usata per prevenire l'inquinamento dello spazio dei nomi, quindi facciamo riferimento ai file come /blog/base.html piuttosto che /base.html che fornisce maggiore chiarezza sul file a cui stiamo facendo riferimento e mantiene lo spazio dei nomi.

Esempio: la cartella dei templates all'interno del blog e delle applicazioni di search contiene un file con nome base.html e quando si fa riferimento al file nelle views l'applicazione viene confusa in quale file eseguire il rendering.

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow