Best practice per una struttura di directory di lavoro Django

Vaibhav Vaibhav 29 giugno 2021
Best practice per una struttura di directory di lavoro Django

Django è un fantastico framework di sviluppo web open source basato su Python che puoi utilizzare per creare applicazioni web full stack. Poiché si tratta di un framework, inizialmente ci si possono aspettare molti file all’interno dei progetti. All’inizio può essere troppo opprimente per un principiante, ma non c’è nulla di cui preoccuparsi; sembrerà tutto semplice con il tempo.

Un’applicazione web ha due facce: sviluppo e produzione. Il lato di sviluppo ha impostazioni diverse rispetto al lato di produzione. Le applicazioni Django hanno molte cartelle come static, media, templates, ecc. Poiché Django è in circolazione da un po’, è necessario conoscere le migliori pratiche per una struttura di directory di lavoro Django per progetti di maggior successo in questo la zona. Parleremo di questi metodi qui nell’articolo, quindi continua a leggere!

Struttura della directory di Django

La struttura della directory di un progetto Django dovrebbe assomigliare a questa:

Project Folder/
    .gitignore    
    LICENSE.rst or LICENSE.md
    Documentation/
    README.rst or README.md
    environment
    requirements.txt
    MyProject/
        manage.py
        media/
        MyProject/
            __init__.py
            settings/
                __init__.py
                base.py
                development.py
                production.py
                .env
            urls.py
            wsgi.py
        AppOne/
            static/
                AppOne/
            templates/
                AppOne/
            urls.py
            views.py
            models.py
        AppTwo/
            static/
                AppTwo/
            templates/
                AppTwo/
            urls.py
            views.py
            models.py
        AppThree/
            static/
                AppThree/
            templates/
                AppThree/
            urls.py
            views.py
            models.py

Cartella radice Djangogo

La cartella principale, Project Folder, contiene i progetti Django e tutti gli altri file relativi al progetto, come license, README, environment, requirements.txt, .gitignore e Documentation or Docs.

Cartella del progetto Django

All’interno del progetto Django, MyProject, dovrebbero esserci il file manage.py, la cartella media, la cartella MyProject che contiene il file settings.py e le applicazioni Django.

Cartella delle impostazioni del progetto Django

Per impostazione predefinita, Django ci fornisce un singolo file settings.py e alcuni altri file importanti come urls.py, wsgi.py, ecc. Il file settings.py contiene impostazioni sia per la produzione che per sviluppo. Quindi, può crescere in lunghezza per un progetto più significativo.

Pertanto, dividere le impostazioni nei rispettivi file è un’ottima idea. Il file base.py contiene le impostazioni che si applicano sia allo sviluppo che alla produzione. Il file development.py contiene tutte le impostazioni applicabili per lo sviluppo e il file production.py contiene tutte le impostazioni di produzione.

I lati di sviluppo e produzione possono avere diverse impostazioni del database, impostazioni di convalida della password, impostazioni e-mail, impostazioni di pagamento, chiavi API e altre configurazioni.

Se stai usando Python Decouple per archiviare dati sensibili, anche il file .env dovrebbe trovarsi in questa cartella.

Applicazioni Django

Ogni applicazione Django avrà una cartella static e una cartella templates. All’interno di queste cartelle, ci sarà un’altra cartella con il nome dell’applicazione. All’interno di queste cartelle, posizioneremo tutti i file e i modelli statici.

Questo approccio ci consente di avere più file con lo stesso nome. Ad esempio, ogni applicazione potrebbe avere un file index.html e un file style.css, e sarà più facile accedervi.

----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}

---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.