Introduksjon til Django

Django er en åpen kildekode web rammeverk skrevet i Python. Django følger løst MVC design mønster. Siden Django er skrevet i Python bør du ha litt kjennskap til Python før du arbeider med det. Du kan laste ned Django fra http://www.djangoproject.com/download. Jeg har brukt Django siden 0.96 utgivelse. I dag vil jeg gå gjennom å skrive et lite program som bruker Django.

Som Django følger et design mønster som ligner på MVC, la oss først forstå hva MVC er.

MVC Design Pattern

Det finnes ulike MVC (Model, View, Controller) rammer tilgjengelig som CakePHP , Zend Framework for PHP-utviklere, Struts for Java-utviklere, Catalyst for Perl-utviklere, og Rails for Ruby utviklere.

Model

Modell brukes vanligvis til å samhandle med databaser. Tenk deg at du jobber med noen nettsamfunn, og du vil få user,Äôs venneliste. Alle spørsmål angående dette er skrevet i Models. Den resulterende utgang er gitt videre til Controller.

Controller

All forretningslogikk går her. Tenk det samme scenariet ovenfor, der brukeren ønsker å få sin egen venneliste. På denne tiden Controller vil få noen innspill fra brukeren. Innganger kan være antall venner han ønsker å se på en gang eller kan være antall brukere fra India. Basert på bruker innganger, til Controller med interaktivt med modellen får vennelisten. Så listen er gått for å se.

Vis

Se brukes for å lage brukergrensesnittet. I vårt tilfelle, vil brukergrensesnittet være basert på vennelisten mottatt fra Controller. Visningen vil ta vare på hvordan listen vises og hva detaljer som skal vises

MVC mønsteret gir oss skrive koden som er lettere å vedlikeholde.; Programmerer skriver Modell og Controller og, på samme tid, kan Designer skape View. Og også noen endringer et sted ikke vil påvirke hele systemet. Vi kan si at MVC applikasjoner er løst koplet
.

MTV Design Pattern

Django følger en litt modifisert versjon av MVC design mønster kalt MTV design mønster. MTV står for Model-Mal-View. Slik Django,Äôs MTV mønsteret er satt opp.

Model

En modell i Django er en Python klasse som representerer en tabell fra en database. Du trenger ikke å skrive komplekse SQL-spørringer for å få poster fra databasen. Du kan gjøre det ved å skrive Python koden selv.

Vis

I Django, Views inneholde all forretningslogikk kode.

Mal

Dette er de HTML-sider som skaper brukergrensesnittet. Django kommer med en svært kraftig templating system.

Get Set, Code

Nå er det på tide å lage søknaden vår. Søknaden vil bli en enkel adressebok. Vi vil gjøre bruk av Django,Äôs Admin å legge poster og vil opprette en visning for å vise kontaktene i adresseboken

For å begynne å lage vår nye Django prosjekt, kjører du følgende kommando:.

 $ django-admin.py startproject djangoapp 

En ny katalog kalt liste vil bli opprettet, som inneholder følgende filer: ¬ †

__ init__.py: Slik at Python behandler denne katalogen som en pakke.

manage.py: Command-line verktøy for å kommunisere med vårt prosjekt

settings.py. konfigurasjonsfil for vårt prosjekt.

urls.py: URL kartlegginger av vårt prosjekt

Django kommer med lette webserver.. IKKE BRUK DET FOR PRODUKSJON. Deretter angir

 $ cd djangoapp 

Og starte webserver:

 $ django-admin.py manage.py runserver 

Dette vil starte webserver på port 8000 (standard) . Besøk http: //localhost: 8000 /fra nettleseren. Du bør se an, ÄúIt jobbet!, AU melding som Figur 1.

Nå skal konfigurere databasetilkobling for søknaden vår. Åpne settings.py filen. Du vil se følgende linjer:

 DATABASE_ENGINE = '' DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = '' 

For vår søknad, vi bruker MySQL og databasen heter, Äúaddressbook,Äù. Så vi må redigere ovenfor linjer som følger:

 DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'adressebok' DATABASE_USER = 'root' DATABASE_PASSWORD = "passord" 

Django,Äôs modeller krever en ny søknad som skal opprettes . Så skriver du inn følgende kommando for å opprette ny søknad:

 $ python manage.py startapp adressebok 

Dette vil skape nye katalog som heter venner med følgende innhold: __init.py__ models.py views.py

Endre katalog til venner:

 $ cd adressebok 

Rediger models.py og skrive følgende innhold i det:

 fra django.db import modeller klasse Kontakter (models.Model ): name = models.CharField (MAX_LENGTH = 30) {margin: 0.79in} telefonen = models.CharField (MAX_LENGTH = 30) e = models.EmailField () 

Klasse Kontakter vil være en tabell i databasen og variablene , Äòname,Äô,, Äòphone,Äô, og Äòemail,Äô vil være kolonnene i Kontakter tabellen. Ja, det er ikke nødvendig å skrive SQL-spørringer - Django kan gjøre det for deg. Vi vil se det senere.

Nå må vi fortelle Django å bruke denne, ÄòContacts,Äô modellen (djangoapp /adressebok /models.py). Rediger settings.py filen, og gå til INSTALLED_APPS delen og legge til, Äòaddressbook,Äô. Det skal se slik ut:

 INSTALLED_APPS = (¬ † ¬ † ¬ † 'django.contrib.auth', ¬ † ¬ † ¬ † 'django.contrib.contenttypes', ¬ † ¬ † ¬ † ' django.contrib.sessions ', ¬ † ¬ † ¬ †' django.contrib.sites ', ¬ † ¬ † ¬ †' adressebok ",) 
Validating Modeller
 $ python manage.py validere < p> Kommandoen ovenfor vil validere modeller i programmet. Det vil sjekke for syntaks og logiske feil. Hvis alt er i orden, så det bør gi 0 feil funnet meldingen. Nå kan du kjøre følgende kommando for å generere spørsmål av modeller: 
 $ python manage.py sqlall adressebok 

I kommandoen ovenfor, er adresse navnet på vår app for hvilke spørsmål som skal genereres. Dette vil ikke opprette en tabell i databasen, det vil bare sende ut spørsmål som vil bli utført ved å lage tabeller. Tabellen navnet vil begynne med, Äòaddressbook_,Äô og Äòid,Äô kolonne (Primary Key) er tilsatt som standard. Og nå SyncDB å lage tabeller:

 $ python manage.py SyncDB 

Dette vil utføre uttalelsene som ble generert av sqlall kommando. Nå som vi har vår database klar, vil vi gjøre bruk av Django,Äôs Admin. For å bruke Admin, må vi legge til, Äòdjango.contrib.admin,Äô til INSTALLED_APPS:

 INSTALLED_APPS = (¬ † ¬ † ¬ † 'django.contrib.auth', ¬ † ¬ † ¬ † 'django .contrib.contenttypes ', ¬ † ¬ † ¬ †' django.contrib.sessions ', ¬ † ¬ † ¬ †' django.contrib.sites ', ¬ † ¬ † ¬ †' adressebok ',' django.contrib.admin ') 

Og igjen synkroniserer databasen:

 $ python manage.py SyncDB 

Som vi har lagt admin i INSTALLED_APPS, vil SyncDB nå be deg om å lage superbruker for søknaden. Vi trenger superbruker for å få tilgang til admin. Nå må vi legge vår modell til admin. For å gjøre det lage en fil som heter admin.py i vår søknad (dvs. under djangoapp /adressebok /):

 fra django.contrib import admin fra djangoapp.addressbook.models importere kontakter admin.site.register (Kontakter ) 

Og, til slutt, redigere urls.py. Legg til (r,Äô ^ admin /(.*), AO, admin.site.root) i urlpatterns slik at vi kan få tilgang til admin på http: //localhost: 8000 /admin. Vår urls.py fil ser slik ut:

 fra django.conf.urls.defaults importere * # uncomment de neste to linjer for å aktivere admin: fra django.contrib import admin admin.autodiscover () urlpatterns = mønstre ('', # Uncomment neste linje for å aktivere admin: (r '^ admin /(.*)', admin.site.root)) 

Nå kjører serveren:

 $ python manage.py runserver 

Du kan få tilgang til admin på http: //localhost: 8000 /admin, som vist i Figur 2.

Klikk på Legg til kobling under Adressebok og begynne å legge til listen. Django Admin er svært nyttig, og det gir også hver typer valideringer.

Nå skal vi skrive en visning for å vise den ekstra kontakter. Åpne filen views.py henhold adressebok og skrive følgende: ¬ †

 fra django.shortcuts importere render_to_response fra modeller importere kontakter def kontakter (forespørsel): contacts_list = Contacts.objects.all () avkastning render_to_response (' contacts_list.html ', {' contacts_list ': contacts_list}) 

I koden ovenfor, har vi opprettet en funksjon som heter Kontakter. Vi tar alle postene fra Kontakter-modellen benytter Contacts.objects.all (). Vi brukte render_to_response å sende variabler til maler. Det første argumentet er malen navnet (contacts_list.html i vårt tilfelle) og det andre argumentet er en ordbok. Nøkkelen i ordlisten er navnet på den variabelen som kan nås i malen contacts_list.html. Verdien i ordlisten er den variabelen som vi vil få tilgang i malen. Vi må lage en katalog som heter maler i adresseboka, og vi vil plassere contacts_list.html. I contacts_list.html vi bare sløyfe gjennom contacts_list ordboken som vi hadde gått i kontaktfunksjon i views.py:

 < html > < head > < title > Adressebok < /title > < head > < h1 > Adressebok < /h1 > < body > < table > < tr > < td > Name < /td > < td > Telefon < /td > < td > E < /td > < /tr > {% For kontakt i contacts_list%} < tr > < td > {{Contact.name}} < /td > < td > {{Contact.phone}} < /td > < td > {{Contact.email}} < /td > < /tr > {% EndFor%} < /table > < /body > < /html > 

For å se resultatet vi har til å kartlegge url til adressevisning. Endre urls.py slik at det ser ut som følger:

 fra django.conf.urls.defaults importere * fra contacts.views importere kontakter # uncomment de neste to linjer for å aktivere admin: fra django.contrib import admin admin.autodiscover () urlpatterns = mønstre ('' (R '^ vis /', kontakter), # Uncomment neste linje for å aktivere admin: (r '^ admin /(.*)', admin.site. root),) 

Du kan se en liste over kontakter på http: //localhost: 8000 /vise /.

I dette innlegget, dekket vi noen grunnleggende om Django som admin, og skaper en visning, og ved hjelp av maler. Jeg vil legge ut mer om Django snart

Referanser:. Http://www.djangobook.com