DJANGO : Hello word !
Non si puo dire di aver usato un linguaggio di programmazione se non si è almeno scritto una volta la mitica frase “Hello word !” nel sudetto linguaggio; vediamo come si fa con DJANGO
Dando per scontato che si conoscano le regole base di python… andiamo prendere il buon e fidato IDLE e creiamo un nuovo file chiamato hello.py da salvare all’interno della struttura che abbiamo precedentemente creato , quindi insieme al file urls.py ecc…
from django.http import HttpResponse def hello(request): html = "<html><body>Hello Word!<br>Ciao Mondo !</html> return HttpResponse(html)
Vediamo passo a passo questo codice una riga alla volta:
- In primo luogo, l’importazione di classe HttpResponse, che vive nel modulo django.http .
Poi vedremo ulteriori dettagli sulla HttpRequest e HttpResponse oggetti. - Avanti, definiamo una funzione chiamata hello. Questa è la funzione di vista. Ogni funzione di vista ha un ogetto HttpRequest come suo primo parametro, che in genere è chiamato a richiesta.
- Si noti che il nome della funzione di vista non importa, ma non deve essere nominato in un certo modo, al fine di farlo riconoscere a Django
- La prima linea di codice all’interno della funzione costruisce un il nostro HTML (Sì, il codice HTML non è valido, ma stiamo cercando di mantenere l’esempio semplice e breve).
- Infine, la vista HttpResponse restituisce un oggetto che contiene la risposta generata. Ogni funzione di vista è responsabile per restituire un oggetto HttpResponse. (Ci sono eccezioni, ma noi arriveremo a quelle più tardi.)
Quindi, per ricapitolare, questo punto di vista funzione restituisce una pagina HTML che include il saluto. Ma come si fa a dire Django di utilizzare questo codice? Ecco che arriva URLconfs
Un URLconf è come una tabella dei contenuti per il tuo sito WebDjango-powered . Fondamentalmente, si tratta di un mapping tra i pattern URL e la vista delle funzioni che devono essere chiamate. E ‘come dire a Django, “Per questo URL, chiamare questo codice, e per questo URL, la chiama il codice…”.
from django.conf.urls.defaults import * # Uncomment the next two lines to enable the admin: # from django.contrib import admin # admin.autodiscover() urlpatterns = patterns('', # Example: # (r'^sito_prova/', include('sito_prova.foo.urls')), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: # (r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: # (r'^admin/(.*)', admin.site.root), )
E lo modifichiamo con il nostro codice :
from django.conf.urls.defaults import * from sito_prova.hello import hello urlpatterns = patterns('', (r'^hello/$', hello), )
Vediamolo una riga per volta:
La prima riga importa importazioni gli oggetti django.conf.urls.default e e i modelli modelli.
La seconda riga impporta la nostra funzione hello conteuta nel sito_prove nel file hello
La terza riga URLPATTERNS [...] poi quando capisco meglio lo spiego … per ora basta sapere che serve per abbinare ad uno specifico urs in ingresso una data funzione , la riga in questione ad ogni connessione all’indirizzo http://127.0.0.1:8000/hello esegue il nosto codice
ma per capire meglio come funziona quella maledetta riga di ulspatterns passiamo subito ad HELLO WORD 2.0
per prima cosa modifichiamo il file hello.py aggiungendo una funzione
def helloplus(request, chi): html ="<html><body>Ciao %s come stai?" % (chi) return HttpResponse(html)
Queste nuove righe aggiungono ben poco all’esempio di prima , vediamo passo passo
La prima riga come prima dichiariamo la funzione helloplus che accetta anche come variabile in ingresso chi e invece le altre due sono identiche alla funzione analizzata prima.
Ora modifichiamo il nostro urls per usare questa funzione
from django.conf.urls.defaults import * from sito_prova.hello import hello,helloplus urlpatterns = patterns('', (r'^hello/$', hello), (r'^hello/([^/]+)/$', helloplus), )
come si vede nella seconda riga importiamo anche la nuova funzione helloplus poi insegnamo al nostro programma che quando riceve una richiesta all url /hello/…../ ,dove al posto dei puntini posso mettere ciò che voglio , definito dalla espresssione regolare ([^/]+) passa alla funzione helloplus questo valore da visualizzare
Go Next Level
convert this post to pdf.
Nessun commento:
Posta un commento