lunedì 22 dicembre 2008

ferzip.com: DJANGO : Hello word !

ferzip.com
22 dicembre 2008 12:10

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…”.

Quando si è eseguito django-admin startproject nel post precedente, lo script ha creato un URLconf automaticamente il file urls.py. Andiamo a  modificare quel file per eseguire il nosto codice
. Per default, viene generato qualcosa di simile a questo:
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

finalmente HELLO WORD

finalmente HELLO WORD

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

esempio django

esempio django

Go Next Level

pdf convert this post to pdf.

Share/Save/Bookmark

Nessun commento: