Django parte2

Prima applicazione:

A questo punto abbiamo installato tutto il necessario sotto la directory django

nella directory di installazione python/sites-packages/django

in esso abbiamo una directory /bin , dove stanno diversi script di utility django,

tra questi il file django-admin.py , di cui creiamo ul link simbolico in /usr/bin ,

con il comando :

ln -s /usr/lib/python2.5/site-packages/django/bin/django-admin.py /usr/bin

in modo da tenere questa utility nella variabile d’ambiente $PATH del sistema.

Adesso lanciamo il comando:

[gianluca@samson ~]$ django-admin.py startproject newapp

trovandoci nella home utente , in essa troveremo la directory newapp

al cui interno abbiamo 4 files :

__init__.py , settings.py , manage.py ed urls.py.

__init__.py è il noto file di inizializzazione di package ,sempre

obbligatorio quando si crea un package da cui importare in seguito nomi.

Anche se vuoto ,bisogna sempre crearlo.

manage.py è l utility per il nuovo progetto appena creato ,va sostituire lo script

django-admin.py per tutte le azioni di manutenzione del progetto.

infatti se adesso andiamo a fare:

[gianluca@samson django1]$ python manage.py runserver

avvieremo l applicazione attraverso il server di sviluppo interno a django

e quindi all indirizzo http://127.0.0.1:8000 avremo

la pagina di OK di django,senza alcun contenuto oltre ,con il solo

avviso del DEBUG (opzione del settings.py) settato a TRUE.

(se era FALSE avremmo avuto una pagina bianca.

Non avremo alcun altro contenuto ,dato che ancora non ne abbiamo

creato,tra poco inizieremo subito a farlo.

Inoltre abbiamo il file settings.py che contiene tutti i settaggi globali

per le varie applicazioni che andremo a creare.

Un consiglio,per avere sempre documentazione a portata di clic ,ne abbiamo

una vasta ed esaudiente sul sito www.djangoproject.com .

Ma se vogliamo eludere la necessità di stare sempre connessi ad internet,

nella directory dei sorgenti dell’installazione di Django,abbiamo una directory

/docs,in questa directory è presente tutta la documentazione che troviamo

sul sito di Django ,ed anche di piu.

la sola cosa che bisogna compilarla attraverso un Makefile che avvia

Sphinx .Sphinx è un utility Python per scrivere documentazione .

Attenzione ,perchè mi è capitato di usare Sphinx con django1.0,

la versione era la Sphinx-0.4.7.Quando poi ho fatto l’ upgrade

di Django alla versione 1.3, e sono andato a creare la documentazione da

conservare in locale con Sphinx,ho avuto un errore in compilazione.

Questo era dovuto al fatto che la documentazione di Djago1.3 ,per

essere compilata con Sphinx ,necessitava di Sphinx >=1.0.

Quindi andare sul sito http://sphinx.pocoo.org/, e

scaricare la versione piu recente (attualmente era la 1.0.7

Il pacchetto è un .EEG,quindi una volta scaricato ,per

installarlo bisogna utilizzare lo scipt easy_install ,anzichè il solito

python setup.py install, e che nel mio caso si trova in /usr/bin,e potremmo averlo

gia usato nel caso lo stesso Django sia proveniente da un pacchetto .EGG .

Quindi ,nella directory dove sta il pacvchetto facciamo da shell:

[gianluca@samson Scrivania]$ sudo easy_install-2.5 Sphinx-1.0.7-py2.5.egg

esso creerà sempre in /usr/bin lo scipt sphinx-build quindi andiamo nella

sottodirectory /docs di Django1.3 ,e lanciamo il makefile :

[gianluca@samson Scrivania]$ make html .

Gli passiamo il parametro ‘html’ se vogliamo che costruisca l’albero di documentazione

in formato html.Ma avremmo potuto scegliere altre opzioni.

Adesso abbiamo tutta la documentazione che ci serve in locale.

Stavamo spiegando i file creati attraverso django-admin.py startproject nomeprogetto

ed eravamo arrivati al file settings.py,quello delle impostazioni globali.

Intanto diciamo che una volta creata la directory nomeprogetto,il file

django-admin.py ,non ci sarà più necessario nel lavorare sulle applicazioni che

creeremo al suo interno,in quanto abbiamo adesso il suo sostituto locale,

il file manage.py.

Dicevamo del file settings.py ,le voci all’ interno sono diverse, però prima

di elencarne le più importanti ,è opportuno spiegare il valore della variabile di

ambiente DJANGO_SETTINGS_MODULE ,essa ci indica dove trovare il file settings.py

da adottare per le impostazioni.Non sarebbe proprio necessario,infatti se noi lanciamo

django-admin.py oppure manage.py da una shell aperta nella directory nomeprogetto,

python troverebbe immediatamente il file settings.py ,dato che la directory corrente

viene automaticamente assunta nel path di ricerca dei moduli dell’ interprete Python.

Oppure ancora possiamo lanciare il webserver interno a Django con le dovute opzioni,

[gianluca@samson ~]$ django-admin.py runserver –settings=sito.settings –pythonpath=’/home/gianluca/Scrivania/html2′

(attenzione a sopra , sito è il nome del mio progetto,all interno di cui abbiamo appunto il file

settings.py . /home/gianluca/Scrivania/html2 invece è il percorso fisico all interno

del quale ho creato appunto la directory di progetto con il comando

django-admin.py startproject sito .

Quest’ ultimo vine sommato al path di ricerca di Python,ed all interno di esso ,ci indica

il settings=sito.settings , che si trova appunto in una sottodirectory di /html2 (/sito).

DJANGO_SETTINGS_MODULE ,fa la stessa cosa ,infatti viene impostata allo stesso

valore dell opzione –settings di django-admin.py ,cioè sito.settings,si badi però che comunque

la directory subito superiore ( /html2 ) deve comunque far parte del path di ricerca python,

altrimenti la ricerca di settings.py all interno di una directory chiamata ‘/sito ‘ sarà vana.

Infatti sempre nel comando django-admin.py runserver sopra ,abbiamo anche

un opzione ‘ pythonpath ‘ ,che indica comunque il path dove cercare la directory

contenente il file settings.py .

Comunque per avviare il server .una volta creato il progetto potete benissimo farlo attraverso

il file manage.py ,che trovandosi nella stessa directory di settings.py , non avrà

mai problemi a trovare settings.py . La giusta assegnazioni del path di ricerca

o della variabile d’ ambiente DJANGO_SETTINGS_MODULE ,si ha quando

dovremo avviare django attarverso mod_python oppure interfaccia WSGI.

Come vedremo in seguito.Per adesso vi dico come impostare DJANGO_SETTINGS_MODULE,

relativamente alla sessione ,facendo da shell *UNIX,

export DJANGO_SETTINGS_MODULE=sito.settings , e poi lanciare il runserver.

Altrimenti in maniera definitiva andiamo nel file .bash_profile nella home utente e aggiungiamo in fondo:

export DJANGO_SETTINGS_MODULE = sito.settings

questo limitato ad un utente.Oppure aprimao il file /etc/profile ed aggiungiamo sempre

export DJANGO_SETTINGS_MODULE = sito.settings

Stavolta sarà valido per tutti gli utenti del sistema.

Oppure ancora sempre per tutti gli utenti andiamo nella directory /etc/rc.d/init.d

dove scriveremo uno script di shell,con sempre la stessa impostazione di sopra.

Questo file viene letto ed eseguito ogni qualvolta si avvierà il sistema.

Dicevamo delle voci presenti nel file settings.py ,

Questo file contienedelle impostazioni che valgono a livello globale del progetto.

Cioè qualsiasi applicazione andremo a creare all’ interno del progetto ,essa farà riferimento

alle impostazioni settate in questo modulo.Per il momento guardiamo solo le essenziali,

cioè quelle che troviamo impostate anche senzaaver creato un applicazione,cioè facendo

uso minimale dei soli files del progetto (al limite aggiugendo il file views.py giusto per dare un primo

output reale.)comunque useremo solo il webserver interno ,e senza databases.

in seguito man mano che ci si porrà davanti spiegheremo le altre voci di settaggio.

segue alla parte 3.

parte1

parte3

Leave a Reply

Your email address will not be published.


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>