Django & Google App Engine: a value composition
Upcoming SlideShare
Loading in...5
×
 

Django & Google App Engine: a value composition

on

  • 251 views

Event: Giffoni Open Makers Day 2013 ...

Event: Giffoni Open Makers Day 2013
Speaker: Fabrizio Lapiello

Questo talk è strutturato "Step by Step" per presentare in modo semplice ed intuitivo il framework Django, gli step sono incentrati sugli aspetti più appetibili e funzionali del framework fornendo informazioni di base su come utilizzarlo in ambiente Google App Engine.

Statistics

Views

Total Views
251
Slideshare-icon Views on SlideShare
248
Embed Views
3

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 3

http://localhost 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Django & Google App Engine: a value composition Django & Google App Engine: a value composition Presentation Transcript

    • Django & App Engine a value composition + Fabrizio Lapiello GDG Campania - Group Lead & Founder
    • Step by step ● ● ● ● ● Introduzione a Django Pennello di amministrazione URL Template App Engine
    • Step 0 Introduzione a Django
    • Introduzione a Django ● ● ● ● Il Framework MTV Pattern DBMS Setup ○ Creazione e compilazione ○ Creazione di una view
    • Cos’è Django? Un ottimo framework per progettare sviluppare web app di successo. e E’ stato progettato per aumentare e migliorare la produttività nello sviluppo di web app. www.djangoproject.com
    • MTV - Model Template View Model contiene le classi le cui istanze rappresentano i dati da visualizzare e manipolare. Template contiene gli oggetti che controllano e gestiscono l’interazione dell’utente con i livelli view e model. View contiene i metodi usati per visualizzare tramite i template nella UI i dati contenuti nel model.
    • DBMS Alcuni dei DBMS più noti ed utilizzati in ambiente django
    • Conoscenze necessarie ...tutto qui!
    • Qualche motivo... ...per imparare Python!
    • Installazione Download: http://www.djangoproject.com/download/ Guida all’installazione: http://docs.djangoproject.com/en/dev/intro/install/ Documentazione ufficiale: http://docs.djangoproject.com/
    • Creazione e compilazione $ django-admin.py startproject hello $ python manage.py runserver
    • Creazione di una vista - step 1 Associare prima di tutto un URL alla vista -> http://127.0.0.1:8000/hello Aprire il file urls.py e inserire la seguente stringa come ultimo parametro : -> (r’^hello/’, “views.hello”) Espressione regolare che indica l’inizio e la fine dell’ url. Associazione Url/Vista
    • Creazione di una vista - step 2 La vista non è altro che un metodo Python che restituisce dei dati. Nella root del progetto creiamo il file views.py e inseriamo il seguente metodo: from django.http import HttpResponse def hello(request): return HttpResponse(“Hello World”)
    • Step 1 Pennello di amministrazione
    • Pannello di amministrazione ● ● ● ● ● ● Creazione di Applicazioni Creazione di Models Aggiunta di un DB ORM Integrato Creazione Pannello Models
    • Creazione di applicazioni E’ buona abitudine strutturare il progetto in sotto-applicazioni in modo da avere maggiore controllo sull’intero sistema da sviluppare. $ python manage.py startapp test Se non ci sono errori dovremmo avere nella root del progetto una cartella di nome “test” con all’interno i seguenti files __init__.py models.py views.py Indicare in Installed_Apps nel file settings.py la presenza dell’applicazione “test” inserendo semplicemente il suo nome tra virgolette in fondo alla lista.
    • Creazione di un Model Modificare il file models.py nella cartella “test from django.db import models class Persona (models.Model): nome = models.CharField(max_length=50) cognome = models.CharField(max_length=50) def __unicode__(self): return u"%s %s" % (self.nome, self.cognome) class Meta: verbose_name_plural ="Persone"
    • Aggiunta di un DB Modificare il file settings.py nel modo seguente: DATABASES = {'default': { 'ENGINE': 'sqlite3', #Nome del dbms es (oracle, mysql etc..) 'NAME': 'test.db', #Nome del db o del percorso 'USER': '', #Nome utente 'PASSWORD': '', #Password'HOST': '', #Indirizzo del dbms 'PORT': '', #Porta } }
    • ORM Integrato “Object-Relational-Mapping” Un ORM è una sorta di linker tra gli oggetti e i database relazionali. Attraverso questo linker gli oggetti creati con un linguaggio di alto livello vengono inseriti nel database relazionale. $ python manage.py syncdb
    • Creazione Pannello di Amministrazione Aprire il file settings.py ed inserire in Installed_Apps l’ applicazione per il pannello di amministrazione come di seguito. INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.admin', )
    • Creazione Pannello di Amministrazione Associare un URL all’applicazione, quindi editare il file urls.py come di seguito. from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), (r'^hello/$', "views.hello"), )
    • Adattiamo i nostri models from django.contrib import admin [...] [...] admin.site.register(Persona)
    • Step 2 URL
    • Gli URL ● URL ● Creazione di un URL
    • URL - Uniform Resource Locator Vantaggi di avere URL “ordinati” ● Facili da ricordare ● Appetibilità da parte dei motori di ricerca ● Durevole nel tempo Esempio pratico: 1. http://nomedominio.com/index.php?option=com_content&view=category&layout=blog&id=3&Itemid=17 2. http://nomedominio.com/blog/ 1) ORRIPILANTE - ASSOLUTAMENTE DA SOSTITUIRE
    • Creazione di un URL In Django la creazione di un URL come il seguente -> http://127.0.0.1:8000/hello comporta l’associazione di una vista al suddetto URL quindi, aprire il file urls.py e inserire la seguente stringa come ultimo parametro : -> (r’^persone/’, “views.persone”) Espressione regolare che indica l’inizio e la fine dell’ url. Associazione Url/Vista
    • Una View più “complessa” from django.http import HttpResponse from accounting.models import * def persone(request): elenco = "" for p in Persona.objects.all(): elenco += "%s %s <br>" % (p.nome, p.cognome) return HttpResponse(elenco)
    • Step 3 Template
    • Un semplice template VIEW from django.http import HttpResponse TEMPLATE <h3> Dati Personali </h3> from django.shortcuts import render_to_response <b>Nome:</b> {{ nome }}<br> from django.template import Context,RequestContext <b>Cognome:</b> {{ cognome }} def Trova(request, n): try: p = Persona.objects.get(nome = n) c = Context() c['nome']=p.nome c['cognome']=p.cognome return render_to_response(template.html', c, context_instance=RequestContext(request)) except: return HttpResponse("Persona non trovata")
    • Step 4 App Engine
    • Perchè e cos’è? ● Piattaforma PaaS ● Facile da utilizzare, facilmente scalabile, traffico e archivazioni dati proporzionati al crescere dell’ esigenze ● Completamente FREE (senza costi di start-up) ● 1GB di memoria e CPU/Larghezza di banda sufficienti a servire 5 MILIONI di pagine viste al mese.
    • You write the code, someone else worries about everithing else… …the power of cloud computing!
    • Launcher
    • App Engine Dashboard
    • If I can help you, scan now!