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



Nessun commento:
Posta un commento