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 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. 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. I Django, Views inneholde all forretningslogikk kode. Dette er de HTML-sider som skaper brukergrensesnittet. Django kommer med en svært kraftig templating system. 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:. En ny katalog kalt liste vil bli opprettet, som inneholder følgende filer: ¬ † Django kommer med lette webserver.. IKKE BRUK DET FOR PRODUKSJON. Deretter angir Og starte webserver: 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: For vår søknad, vi bruker MySQL og databasen heter, Äúaddressbook,Äù. Så vi må redigere ovenfor linjer som følger: Django,Äôs modeller krever en ny søknad som skal opprettes . Så skriver du inn følgende kommando for å opprette ny søknad: Dette vil skape nye katalog som heter venner med følgende innhold: __init.py__ models.py views.py Endre katalog til venner: Rediger models.py og skrive følgende innhold i det: 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: 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: 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: Og igjen synkroniserer databasen: 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 /): 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: Nå kjører serveren: 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: ¬ † 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: For å se resultatet vi har til å kartlegge url til adressevisning. Endre urls.py slik at det ser ut som følger: 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
.
MTV Design Pattern
Model
Vis
Mal
Get Set, Code
$ django-admin.py startproject djangoapp
__ 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
$ cd djangoapp
$ django-admin.py manage.py runserver
DATABASE_ENGINE = '' DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = ''
DATABASE_ENGINE = 'mysql' DATABASE_NAME = 'adressebok' DATABASE_USER = 'root' DATABASE_PASSWORD = "passord"
$ python manage.py startapp adressebok
$ cd adressebok
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 ()
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
$ python manage.py SyncDB
INSTALLED_APPS = (¬ † ¬ † ¬ † 'django.contrib.auth', ¬ † ¬ † ¬ † 'django .contrib.contenttypes ', ¬ † ¬ † ¬ †' django.contrib.sessions ', ¬ † ¬ † ¬ †' django.contrib.sites ', ¬ † ¬ † ¬ †' adressebok ',' django.contrib.admin ')
$ python manage.py SyncDB
fra django.contrib import admin fra djangoapp.addressbook.models importere kontakter admin.site.register (Kontakter )
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))
$ python manage.py runserver
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})
< 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 >
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),)