tech%meet(up%1:%...

Post on 19-Mar-2018

216 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Malaysia  2014  

Tech  Meet-­‐up  1:  Intro  to  Django  

Malaysia  2014  

Today’s  Meet-­‐up  

•  The  Big  Picture  •  Django  –  A  Web  ApplicaAon  Framework  

•  Your  First  Django  App  •  Models  in  Django  

•  Today’s  Assignment  

2  

Malaysia  2014  

3  

The  Big  Picture  

Malaysia  2014  

Once  upon  a  Ame…  

4  

OR  

Malaysia  2014  

Nowadays…  

OR   OR  

Malaysia  2014  

ImplemenAng  the  Backend  

We  need  to  implement  the  backend:  •  A  web  applicaAon  framework,  like  – MonoRail,  CppCMS,  Apache  Click,  Grails,  Spring,  Stripes,  mulAple,  Catalyst,  CakePHP,  Drupal,  Symfony,  CherryPy,  Django,  web2py,  Ruby  on  Rails,  Compujure  

•  A  host,  like  – Heroku,  Google  App  Engine  

•  A  RESTful  API  to  communicate  with  frontend  

6  

Malaysia  2014  

Web  ApplicaAon  Framework  

7  

•  A  framework  (code  libraries)  to  help  you  make  web  applicaAons  or  websites  

•  Supports  you  with  – Handling  HTTP  requests  – Templates  for  common  HTML  layouts  – URL  mapping  – Database  communicaAon  – Session  management  – Site  security  

Malaysia  2014  

8  

Django    Web  ApplicaAon  Framework  

Malaysia  2014  

Why  Django?  

Malaysia  2014  

Why  Django?  

•  Fast  and  easy  development  of  web  applicaAons  – Modular  and  re-­‐useable.    Don’t  Repeat  Yourself  (DRY)  principle  

– Built-­‐in  database  management  

•  AcAve  development  and  wide  community  support  

•  Supported  by  Google  App  Engine  &  Heroku  

10  

Malaysia  2014  

Malaysia  2014  

Django  vs.  PHP  

Malaysia  2014  

PHP  SELECT  Statement  

Malaysia  2014  

Django  SELECT  Statement  

Malaysia  2014  

Focus  on  building  your  product!    

Malaysia  2014  

vs  

Malaysia  2014  

Django  Architecture  

Malaysia  2014  

Model-­‐View-­‐Controller  (MVC)  

•  A  padern  for  organizing  code  ofen  seen  in  web  app  frameworks  

•  Main  idea:  1.  Separate  storage  and  manipulaAon  of  data  (model)  

from  presentaAon  of  data  (view)  2.  Controller  communicates  between  model  and  view  

•  Advantages  – Develop  and  test  model  and  view  independently  

–  Easier  for  others  to  understand  (modularity)  

18  

Malaysia  2014  

Model-­‐View-­‐Controller  (MVC)  (news  site  example)  

19  

Controller  

View   Model  

•  News  stories  and  images  in  a  database  

•  User  comments  

•   Layout  of  stories  on  mobile  phone  or  desktop  browser  

Send  request  for  a  story  

Asks  the  model  for  the  story  and  its  user  comments  

Serves  requested  story  

Malaysia  2014  

Model-­‐Template-­‐View  

In  Django:  Model-­‐Template-­‐View                    (similar  to  MVC  padern)  

•  Model    – describes  database  informaAon  

•  Template    – decides  how  to  present  informaAon  

•  View    – manages  what  informaAon  to  output  based  on  request  

20  

Malaysia  2014  

Model-­‐Template-­‐View  

21  

View  

Template   Model  

Send  request  for  data  

Asks  the  model  for  data  

Provide  Database  InformaAon  UI  Layout   Communicate  

with  Database  

Handles  InformaAon  Exchange  

Model  

Malaysia  2014  

22  

Your  First  Django  App  

Malaysia  2014  

Programming  Interface  

23  

Terminal  /  Command  Prompt   Python  IDLE  or  Favorite  editor  

Malaysia  2014  

New  Project  

24  

Project  Structure:    Whole  project  in  one  folder  (mysite)  

•  MySite  Python  package  •  ApplicaAons  (polls)  •  (Database)  •  manage.py  

•  Use  for  interacAon  with  your  project  

•  MySite  Python  Package  •  __init__.py  •  sekngs.py  •  urls.py  •  wsgi.py  

Malaysia  2014  

First  Django  Setup  

Afer  a  couple  commands  in  terminal...  

25  

Malaysia  2014  

Models  

26  

Malaysia  2014  

Models  

27  

View  

Template   Model  

Send  request  for  data  

Asks  the  model  for  data  

Provide  Database  InformaAon  UI  Layout   Communicate  

with  Database  

Handles  InformaAon  Exchange  

Malaysia  2014  

What  is  a  Model  

•  Python  class  describing  data  in  your  applicaAon  – Subclass  of  models.Model  

•  Assigns  adributes  to  each  data  field  •  Avoid  direct  work  with  the  database  – No  need  to  handle  database  connecAons,  Ameouts,  etc.  –  Let  Django  do  it  for  you!  

– Provides  Schema  for  database  

28  

Malaysia  2014  

Django  Model  Syntax  

29  

Import  statements  

SubClass  of  models.Model  Class  

Define  fields  

Can  define  more  funcAons  

__unicode__  corresponds  to  python  __str__    

Malaysia  2014  

Django  Fields  

We  can  define  fields  directly  in  our  model  class  – No  need  to  define  manually  in  database  

Example:  create  two  fields  in  our  Poll  class  

30  

Define  Type  of  Field  •  E.g.  models.CharField  

Define  arguments  of  field  •  E.g.  max_length=200  

Django  will  automaAcally  create  fields  in  database    

Malaysia  2014  

Important  Django  Field  Types  

•  BooleanField  

–  Checkbox  •  CharField(max_length)  

–  Single-­‐line  textbox  •  DateField  

–  Javascript  calendar  •  DateTimeField    

–  Javascript  calendar,  Ame  picker  •  DecimalField(max_digits,  decimal_places)  

–  Decimal  numbers  •  EmailField  

–  Charfield  that  validates  email  address  

31  

•  FileField  •  File  upload,  stores  path  

in  database  •  FloatField  

•  FloaAng  point  numbers  •  IntegerField  

Integer  textbox  •  PosiAveIntegerField  

•  Integer  textbos  for  posiAve  integers  

•  TextField  •  MulA-­‐line  textbox  

Malaysia  2014  

Rules  of  Django  Models  

•  When  you  update  a  model,  ALWAYS  RUN    python  manage.py  syncdb  

•  All  classes  extend  models.Model  •  Models  only  live  in  Apps  •  Django  doesn't  save  objects  unAl  you  call  save()  method  

>>>a1  =  Album(...)  #  a1  is  not  saved  to  the  database  yet!  >>>a1.save()  #  Now  it  is.  

32  

Malaysia  2014  

33  

Today’s  Assignment  

Malaysia  2014  

Today’s  Assignment  

Get  started  with  Django!  –  If  you  haven’t  already,  install  Django  1.6  – Create  your  first  Django  app:  

 WriAng  your  first  Django  App  –  Part  1  

Helpful  DocumentaAon:  – Models  secAon  of  Django  docs  

34  

top related