SlideShare a Scribd company logo
Introduction       Using django     Features of django   Reuseable apps   End Notes




               Building Pluggable Web Applications using



                                  Lakshman Prasad

                                    Agiliq Solutions




                                   April 21, 2010
Introduction       Using django     Features of django   Reuseable apps   End Notes




           • For building database driven web applications
Introduction       Using django     Features of django   Reuseable apps   End Notes




           • For building database driven web applications
           • Emphasis on Reuse, DRY and simplicity
Introduction   Using django    Features of django   Reuseable apps   End Notes




                        Hypothetical Application
Introduction       Using django       Features of django   Reuseable apps   End Notes




               Install a pluggable app django-star-rating


       $pip install django-star-rating

       INSTALLED APPS = (
           ’ django . c o n t r i b   . auth ’ ,
           ’ django . c o n t r i b   . contenttypes ’ ,
           ’ django . c o n t r i b   . sessions ’ ,
           ’ django . c o n t r i b   . sites ’ ,
           ’ django . c o n t r i b   . admin ’ ,
           ’ starrating ’ ,
       )
Introduction         Using django        Features of django       Reuseable apps   End Notes




                                Point to an url pattern



       from b l o g . m o d e l s import P o s t

       urlpatterns = patterns ( ’ ’ ,
           ( r ’ ˆ$ ’ , ’ b l o g . v i e w s . i n d e x ’ ) ,
           ( r ’ s t a r i n g /$ ’ , { model : P o s t } ,
           ’ s t a r r a t i n g . views . star ’ ) ,
       )
Introduction      Using django     Features of django   Reuseable apps   End Notes




                    Put the rating where you want!

      <html>
          <head>
              < t i t l e>{{ page . t i t l e }}</ t i t l e>
          <body>
              {% s t a r r a t i n g %}
              <d i v>
                      {{ page . c o n t e n t }}
              </ d i v>
          ...
          </body>
      ...
Introduction   Using django   Features of django   Reuseable apps   End Notes




                              Thats it!
Introduction      Using django   Features of django   Reuseable apps   End Notes




       Introduction
           Definition
           A Case Study: Youtube Stars
           Overview
           Philosophy
       Using django
          MTV
       Features of django
          Features
       Reuseable apps
          Writing reuseable apps
          Community Applications
       End Notes
          Django Stats
          Common Enterprise Hurdles
          Other
Introduction    Using django   Features of django   Reuseable apps   End Notes




               Developed at Lawrence-Journal World
5 million hits per month
600 Contributors
Majority of the features community contributed
5 years since Open Source
Introduction   Using django    Features of django   Reuseable apps   End Notes




                              Philosophy
Automate repetitive tasks
Make Development Fast
Introduction   Using django   Features of django   Reuseable apps   End Notes




                  Convention Over Configuration
Follow Best Practices
Models-Templates-Views
Models
Introduction           Using django          Features of django       Reuseable apps   End Notes




                                         Model Syntax
       from d j a n g o . db import m o d e l s

       c l a s s P o s t ( m o d e l s . Model ) :
               t i t l e = m o d e l s . C h a r F i e l d ( m a x l e n g t h =100)
               t e x t = models . T e x t F i e l d ( )
               datetime = models . DateTimeField ( )

               c l a s s Meta :
                       o r d e r i n g = ( ’−d a t e t i m e ’ , )

               def      unicode ( self ):
                      return s e l f . t i t l e

       c l a s s Comment ( m o d e l s . Model ) :
               post = models . ForeignKey ( Post )
               t e x t = models . T e x t F i e l d ( )
Introduction        Using django         Features of django      Reuseable apps   End Notes




                                       Model API




      >>>from b l o g . m o d e l s import Post , Comment
      >>>p o s t = P o s t . o b j e c t s . a l l ( ) [ 0 ]
      >>>p o s t c o m m e n t s = p o s t . c om m en t s et . a l l ( )
Introduction   Using django     Features of django   Reuseable apps   End Notes




                          Admin by models alone
Introduction         Using django         Features of django      Reuseable apps   End Notes




                                     Admin Syntax


       from d j a n g o . c o n t r i b import admin
       from m o d e l s import Post , Comment

       c l a s s PostAdmin ( admin . ModelAdmin ) :
               l i s t d i s p l a y = ( ’ t i t l e ’ , ’ datetime ’ )

       c l a s s CommentAdmin ( admin . ModelAdmin ) :
               l i s t d i s p l a y = ( ’ text ’ ,)

       admin . s i t e . r e g i s t e r ( Post , PostAdmin )
       admin . s i t e . r e g i s t e r ( Comment , CommentAdmin )
List Page
Add an Entry
Auto Validation
Introduction          Using django          Features of django        Reuseable apps   End Notes




                                            Ugly urls



       h t t p : / / a r t . com/ a r t g a l l e r y / d e f a u l t . a s p ?
       s i d =9DF4BC0580DF11D3ACB60090271E26A8
       &command= f r e e l i s t

       h t t p : / / p r e v i e w . y n o t . com/ c g i b i n /
       n d C G I 5 0 . c g i / Y n o t P h o e n i x / CFsMain .
Introduction        Using django        Features of django      Reuseable apps       End Notes




                                       Good urls




       h t t p : / /www. w i r e d . com/ a p p l e / MacbookPro /

       h t t p : / / devmarch . com/ d e v e l o p e r s u m m i t / s p e a k e r s . html
Introduction         Using django        Features of django       Reuseable apps   End Notes




                                    django url pattern



       from b l o g . m o d e l s import P o s t

       urlpatterns = patterns ( ’ ’ ,
           ( r ’ ˆ$ ’ , ’ b l o g . v i e w s . i n d e x ’ ) ,
           ( r ’ s t a r i n g /$ ’ , { model : P o s t } ,
           ’ s t a r r a t i n g . views . star ’ ) ,
       )
Views
Introduction         Using django         Features of django       Reuseable apps   End Notes




                                       django views




       from d j a n g o . h t t p import H t t p R e s p o n s e

       def p o s t ( r e q u e s t ) :
           r e t u r n H t t p R e s p o n s e ( ’ H e l l o World ! ’ )
Introduction         Using django         Features of django       Reuseable apps         End Notes




                                       django views

       def p o s t ( r e q u e s t , p o s t i d ) :
           p o s t = P o s t . o b j e c t s . g e t ( pk=p o s t i d )
           i f r e q . method == ’POST ’ :
                   comment form = CommentForm ( r e q u e s t . POST)
                   comment = comment form . s a v e ( )
           payload = { ’ post ’ : post ,
                                  ’ comments ’ :
                                 Comment . o b j e c t s . f i l t e r ( p o s t i d=p o s t i d ) ,
                                  ’ comment form ’ : CommentForm ( ) }
           r e t u r n r e n d e r t o r e s p o n s e ( ’ p o s t . html ’ ,
                                                         payload ,
                                                         RequestContext ( req ))
Templates
Introduction        Using django       Features of django     Reuseable apps   End Notes




                                   django template


       {% e x t e n d s ” b a s e . html ” %}
       {% b l o c k body %}
           {% i f u s e r . i s a u t h e n t i c a t e d %}
                    Welcome {{ u s e r . g e t f u l l n a m e }}
           {% e l s e %}
                   {% i n c l u d e ” l o g i n . html ” %}
           {% e n d i f %}

        ...

       {% e n d b l o c k %}
Features
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
Introduction       Using django   Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
           • Caching
Introduction        Using django    Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
           • Caching
           • Internationalization
Introduction        Using django    Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
           • Caching
           • Internationalization
           • RSS
Introduction        Using django    Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
           • Caching
           • Internationalization
           • RSS
           • CSRF protection
Introduction        Using django    Features of django   Reuseable apps   End Notes




           • Admin Interface
           • Generic Views
           • Testing Tools
           • Sessions
           • Authentication
           • Caching
           • Internationalization
           • RSS
           • CSRF protection
           • File Storage
Django Documentation
Introduction         Using django   Features of django   Reuseable apps   End Notes




               General conventions adopted by the community
Introduction        Using django        Features of django      Reuseable apps        End Notes




                                   Use template tags



      <p>The t i m e i s {% c u r r e n t t i m e ”%I :%M %p” %}.</p>

       from d j a n g o import t e m p l a t e
       def d o c u r r e n t t i m e ( p a r s e r , t o k e n ) :
           tag name , f o r m a t s t r i n g = t o k e n . s p l i t c o n t e n t s ( )
           r e t u r n CurrentTimeNode ( f o r m a t s t r i n g [ 1 : − 1 ] )
Introduction          Using django         Features of django       Reuseable apps         End Notes




                                         Use Signals

       from d j a n g o . c o r e . s i g n a l s import r e q u e s t f i n i s h e d

       r e q u e s t f i n i s h e d . connect ( my callback )


       from d j a n g o . db . m o d e l s . s i g n a l s import p r e s a v e
       from myapp . m o d e l s import MyModel

       def m y h a n d l e r ( s e n d e r , ∗∗ k w a r g s ) :
           ...

               p r e s a v e . c o n n e c t ( m y h a n d l e r , s e n d e r=MyModel )
Introduction      Using django   Features of django   Reuseable apps   End Notes




                                   Basics



           • Take template_name and extra_context every where
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                       Basics



           • Take template_name and extra_context every where
           • Write urls in applications
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                       Basics



           • Take template_name and extra_context every where
           • Write urls in applications
           • Import from the application level
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                       Basics



           • Take template_name and extra_context every where
           • Write urls in applications
           • Import from the application level
           • Prefix template name with directory
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                       Basics



           • Take template_name and extra_context every where
           • Write urls in applications
           • Import from the application level
           • Prefix template name with directory
           • Use MEDIA_URL in templates
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                       Basics



           • Take template_name and extra_context every where
           • Write urls in applications
           • Import from the application level
           • Prefix template name with directory
           • Use MEDIA_URL in templates
           • Reverse url patterns
Introduction          Using django           Features of django         Reuseable apps           End Notes




                                     Basics Done right

       def r e g i s t e r ( r e q u e s t , backend , s u c c e s s u r l=None ,
                             f o r m c l a s s=None ,
                             d i s a l l o w e d u r l=
                             ’ registration disallowed ’ ,
                             t e m p l a t e n a m e=
                             ’ r e g i s t r a t i o n / r e g i s t r a t i o n f o r m . html ’ ,
                             e x t r a c o n t e x t=None ) :


                               ...

         return r e n d e r t o r e s p o n s e ( template name ,
                                                  { ’ form ’ : form } ,
                                                  context )
Introduction       Using django   Features of django   Reuseable apps   End Notes




                                  Advanced




           • Use Template Response
Introduction       Using django       Features of django   Reuseable apps   End Notes




                                  Advanced




           • Use Template Response
           • Write Views as Classes
There is an app for that
For every size and style
Introduction   Using django     Features of django   Reuseable apps   End Notes




                         Github Search ”django”
Introduction   Using django   Features of django   Reuseable apps   End Notes
Introduction          Using django     Features of django   Reuseable apps   End Notes




                                     Pinax Features
           •   openid support
           •   email verification
           •   password management
           •   site announcements
           •   a notification framework
           •   user-to-user messaging
           •   friend invitation (both internal and external to the site)
           •   a basic twitter clone
           •   oembed support
           •   gravatar support
           •   interest groups (called tribes)
           •   projects with basic task and issue management
           •   threaded discussions
           •   wikis with multiple markup support
           •   blogging
           •   bookmarks
Introduction   Using django     Features of django          Reuseable apps    End Notes




                              django-mingus

      django extensions                       view cache utils
      basic                                   contact form
      flatblocks                              honeypot
      disqus                                  sugar
      navbar                                  quoteme
      djangodblog                             django− s t a t i c f i l e s
      sorl                                    django−b i t l y
      oembded                                 d j a n g o −t w i t t e r
      template utils                          python−t w i t t e r
      django proxy                            d j a n g o −wysiwyg
      compressor                              d j a n g o −s l i m m e r
      django markup                           d j a n g o −c r o p p e r
      google analytics                        d j a n g o −r e q u e s t
Django users
Introduction       Using django     Features of django   Reuseable apps   End Notes




                                  Popular Users


           • Media
              • LA Times
              • NY Times
              • Washington Post
              • Guardian
Introduction       Using django     Features of django   Reuseable apps   End Notes




                                  Popular Users


           • Media
              • LA Times
              • NY Times
              • Washington Post
              • Guardian
           • Web2.0
              • Mahalo: 10 million Page views
              • Pownce, SixApart
Introduction        Using django     Features of django   Reuseable apps   End Notes




                                   Popular Users


           • Media
              • LA Times
              • NY Times
              • Washington Post
              • Guardian
           • Web2.0
              • Mahalo: 10 million Page views
              • Pownce, SixApart
           • Full List: djangosites.com
Introduction         Using django     Features of django   Reuseable apps   End Notes




                                        NASA




                   After an extensive trade study, we selected Django ...
               as the first and primary application environment for the
               Nebula Cloud.
Introduction       Using django   Features of django   Reuseable apps   End Notes




                         Enterprise Adoption Hurdles




           • Multiple Databases
Introduction       Using django     Features of django   Reuseable apps   End Notes




                         Enterprise Adoption Hurdles




           • Multiple Databases
           • Dynamic settings infrastructure
Introduction         Using django   Features of django   Reuseable apps   End Notes




                           Enterprise Adoption Hurdles




           • Multiple Databases
           • Dynamic settings infrastructure
           • Tools
Introduction         Using django    Features of django   Reuseable apps   End Notes




                                    About Me
           •   lakshman@agiliqsolutions.com, @becomingGuru
           •   lakshmanprasad.com
           •   Agiliq Solutions Formerly, Usware Technologies @agiliq
           •   Team of Expert Django Developers, Happy Clients
http://www.agiliqsolutions.com/
Introduction                   Using django                        Features of django                        Reuseable apps                End Notes




                                                     Image Attributions



       h t t p : / /www . f l i c k r . com/ p h o t o s / t e j e d o r o d e l u z /3157690060/
       h t t p : / /www . f l i c k r . com/ p h o t o s /23820645 @N05 /4287681570/
       h t t p : / /www . f l i c k r . com/ p h o t o s / a i d a n j o n e s /3575000735/
       http :// j a c o b i a n . org /
       h t t p : / / s a n j u a n c o l l e g e . edu / l i b / i m a g e s / p h i l o s o p h y b r a i n . j p g
       h t t p : / /www . f l i c k r . com/ p h o t o s / uhop /105062059/
       h t t p : / / s 3 . amazonaws . com/memebox/ u p l o a d s /136/ e x p o n e n t i a l g r a p h 2 . j p g
       h t t p : / / g e e k a n d p o k e . t y p e p a d . com/ g e e k a n d p o k e / i m a g e s /2008/06/03/ s e x p l 1 8 . j p g
       h t t p : / /www . f l i c k r . com/ p h o t o s / go /253819/
       h t t p : / / a r o u n d t h e s p h e r e . f i l e s . w o r d p r e s s . com /2009/05/ s w i s s −army−k n i f e . j p g
       h t t p : / /www . f r e e f o t o . com/ i m a g e s /41/04/41 0 4 9− −Keep−L e f t w e b . j p g
                                                                                              −
       h t t p : / /www . f l i c k r . com/ p h o t o s / o r i n r o b e r t j o h n /114430223/
?

More Related Content

What's hot (20)

Tower of Hanoi Method
Tower of Hanoi MethodTower of Hanoi Method
Tower of Hanoi Method
MDHALIM7
 
Part One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN StackPart One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN Stack
MongoDB
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
Dr-Dipali Meher
 
Lecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptxLecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptx
ShahinAhmed49
 
SQOOP PPT
SQOOP PPTSQOOP PPT
SQOOP PPT
Dushhyant Kumar
 
Java Server Pages(jsp)
Java Server Pages(jsp)Java Server Pages(jsp)
Java Server Pages(jsp)
Manisha Keim
 
Inline function in C++
Inline function in C++Inline function in C++
Inline function in C++
Jenish Patel
 
Difference between association, aggregation and composition
Difference between association, aggregation and compositionDifference between association, aggregation and composition
Difference between association, aggregation and composition
baabtra.com - No. 1 supplier of quality freshers
 
Ruby programming
Ruby programmingRuby programming
Ruby programming
Kartik Kalpande Patil
 
Cookies in servlets.ppt
Cookies in servlets.pptCookies in servlets.ppt
Cookies in servlets.ppt
Swetha S
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
Lemi Orhan Ergin
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation
platico_dev
 
Toward Better Multi-Tenancy Support from HDFS
Toward Better Multi-Tenancy Support from HDFSToward Better Multi-Tenancy Support from HDFS
Toward Better Multi-Tenancy Support from HDFS
DataWorks Summit/Hadoop Summit
 
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
Kobkrit Viriyayudhakorn
 
Chapter 03 python libraries
Chapter 03 python librariesChapter 03 python libraries
Chapter 03 python libraries
Praveen M Jigajinni
 
Introduction to Web Development - JavaScript
Introduction to Web Development - JavaScriptIntroduction to Web Development - JavaScript
Introduction to Web Development - JavaScript
SadhanaParameswaran
 
Javascript built in String Functions
Javascript built in String FunctionsJavascript built in String Functions
Javascript built in String Functions
Avanitrambadiya
 
Tower of hanoi
Tower of hanoiTower of hanoi
Tower of hanoi
Iffat Anjum
 
Introduction to HTML
Introduction to HTMLIntroduction to HTML
Introduction to HTML
Seble Nigussie
 
Presentation on python data type
Presentation on python data typePresentation on python data type
Presentation on python data type
swati kushwaha
 
Tower of Hanoi Method
Tower of Hanoi MethodTower of Hanoi Method
Tower of Hanoi Method
MDHALIM7
 
Part One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN StackPart One: Building Web Apps with the MERN Stack
Part One: Building Web Apps with the MERN Stack
MongoDB
 
Lecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptxLecture_7-Encapsulation in Java.pptx
Lecture_7-Encapsulation in Java.pptx
ShahinAhmed49
 
Java Server Pages(jsp)
Java Server Pages(jsp)Java Server Pages(jsp)
Java Server Pages(jsp)
Manisha Keim
 
Inline function in C++
Inline function in C++Inline function in C++
Inline function in C++
Jenish Patel
 
Cookies in servlets.ppt
Cookies in servlets.pptCookies in servlets.ppt
Cookies in servlets.ppt
Swetha S
 
Fundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-DevelopersFundamentals of Web Development For Non-Developers
Fundamentals of Web Development For Non-Developers
Lemi Orhan Ergin
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation
platico_dev
 
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
[React Native Tutorial] Lecture 7: Navigation - Scene Transition - ListView
Kobkrit Viriyayudhakorn
 
Introduction to Web Development - JavaScript
Introduction to Web Development - JavaScriptIntroduction to Web Development - JavaScript
Introduction to Web Development - JavaScript
SadhanaParameswaran
 
Javascript built in String Functions
Javascript built in String FunctionsJavascript built in String Functions
Javascript built in String Functions
Avanitrambadiya
 
Presentation on python data type
Presentation on python data typePresentation on python data type
Presentation on python data type
swati kushwaha
 

Viewers also liked (6)

Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
Jacob Kaplan-Moss
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django Admin
Lincoln Loop
 
Intro to Angular Directives using Interactive charting directives that use Hi...
Intro to Angular Directives using Interactive charting directives that use Hi...Intro to Angular Directives using Interactive charting directives that use Hi...
Intro to Angular Directives using Interactive charting directives that use Hi...
Lakshman Prasad
 
Introduction to Makefile
Introduction to MakefileIntroduction to Makefile
Introduction to Makefile
Tusharadri Sarkar
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
Ganga Ram
 
Introduction To Django
Introduction To DjangoIntroduction To Django
Introduction To Django
Jay Graves
 
Customizing the Django Admin
Customizing the Django AdminCustomizing the Django Admin
Customizing the Django Admin
Lincoln Loop
 
Intro to Angular Directives using Interactive charting directives that use Hi...
Intro to Angular Directives using Interactive charting directives that use Hi...Intro to Angular Directives using Interactive charting directives that use Hi...
Intro to Angular Directives using Interactive charting directives that use Hi...
Lakshman Prasad
 
A Basic Django Introduction
A Basic Django IntroductionA Basic Django Introduction
A Basic Django Introduction
Ganga Ram
 
Introduction To Django
Introduction To DjangoIntroduction To Django
Introduction To Django
Jay Graves
 
Ad

Similar to Building Pluggable Web Applications using Django (20)

djangoic approach to implement common web development paradigms
djangoic approach to implement common web development paradigmsdjangoic approach to implement common web development paradigms
djangoic approach to implement common web development paradigms
Lakshman Prasad
 
a hands on guide to django
a hands on guide to djangoa hands on guide to django
a hands on guide to django
swee meng ng
 
Dojango
DojangoDojango
Dojango
klipstein
 
Django by rj
Django by rjDjango by rj
Django by rj
Shree M.L.Kakadiya MCA mahila college, Amreli
 
learnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptxlearnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptx
bestboybulshaawi
 
django
djangodjango
django
webuploader
 
Django
DjangoDjango
Django
webuploader
 
Django
DjangoDjango
Django
Harmeet Lamba
 
Django cms best practices
Django cms best practicesDjango cms best practices
Django cms best practices
Iacopo Spalletti
 
To GO or not to GO
To GO or not to GOTo GO or not to GO
To GO or not to GO
superstas88
 
Web Development Paradigms and djangoic approach to deal with them
Web Development Paradigms and djangoic approach to deal with themWeb Development Paradigms and djangoic approach to deal with them
Web Development Paradigms and djangoic approach to deal with them
Lakshman Prasad
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with Ruby
Nikhil Mungel
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
Udi Bauman
 
Django tutorial
Django tutorialDjango tutorial
Django tutorial
Ksd Che
 
Two scoops of django version one
Two scoops of django   version oneTwo scoops of django   version one
Two scoops of django version one
viv123
 
Hands on django part 1
Hands on django part 1Hands on django part 1
Hands on django part 1
MicroPyramid .
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
Rosario Renga
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
Ricardo Soares
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django Developers
Christine Cheung
 
Go 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX GoGo 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX Go
Rodolfo Carvalho
 
djangoic approach to implement common web development paradigms
djangoic approach to implement common web development paradigmsdjangoic approach to implement common web development paradigms
djangoic approach to implement common web development paradigms
Lakshman Prasad
 
a hands on guide to django
a hands on guide to djangoa hands on guide to django
a hands on guide to django
swee meng ng
 
learnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptxlearnpythondjangochapteroneintroduction.pptx
learnpythondjangochapteroneintroduction.pptx
bestboybulshaawi
 
To GO or not to GO
To GO or not to GOTo GO or not to GO
To GO or not to GO
superstas88
 
Web Development Paradigms and djangoic approach to deal with them
Web Development Paradigms and djangoic approach to deal with themWeb Development Paradigms and djangoic approach to deal with them
Web Development Paradigms and djangoic approach to deal with them
Lakshman Prasad
 
Introducing Command Line Applications with Ruby
Introducing Command Line Applications with RubyIntroducing Command Line Applications with Ruby
Introducing Command Line Applications with Ruby
Nikhil Mungel
 
Intro To Django
Intro To DjangoIntro To Django
Intro To Django
Udi Bauman
 
Django tutorial
Django tutorialDjango tutorial
Django tutorial
Ksd Che
 
Two scoops of django version one
Two scoops of django   version oneTwo scoops of django   version one
Two scoops of django version one
viv123
 
Hands on django part 1
Hands on django part 1Hands on django part 1
Hands on django part 1
MicroPyramid .
 
Django Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python DevelopersDjango Framework Overview forNon-Python Developers
Django Framework Overview forNon-Python Developers
Rosario Renga
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
Ricardo Soares
 
Best Practices for Front-End Django Developers
Best Practices for Front-End Django DevelopersBest Practices for Front-End Django Developers
Best Practices for Front-End Django Developers
Christine Cheung
 
Go 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX GoGo 1.10 Release Party - PDX Go
Go 1.10 Release Party - PDX Go
Rodolfo Carvalho
 
Ad

Recently uploaded (20)

Gihbli AI and Geo sitution |use/misuse of Ai Technology
Gihbli AI and Geo sitution |use/misuse of Ai TechnologyGihbli AI and Geo sitution |use/misuse of Ai Technology
Gihbli AI and Geo sitution |use/misuse of Ai Technology
zainkhurram1111
 
Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyesEnd-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
ThousandEyes
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Lorenzo Miniero
 
Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
Introducing the OSA 3200 SP and OSA 3250 ePRC
Introducing the OSA 3200 SP and OSA 3250 ePRCIntroducing the OSA 3200 SP and OSA 3250 ePRC
Introducing the OSA 3200 SP and OSA 3250 ePRC
Adtran
 
Cyber Security Legal Framework in Nepal.pptx
Cyber Security Legal Framework in Nepal.pptxCyber Security Legal Framework in Nepal.pptx
Cyber Security Legal Framework in Nepal.pptx
Ghimire B.R.
 
Data Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any ApplicationData Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any Application
Safe Software
 
Introducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and ARIntroducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and AR
Safe Software
 
Let’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack CommunityLet’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack Community
SanjeetMishra29
 
New Ways to Reduce Database Costs with ScyllaDB
New Ways to Reduce Database Costs with ScyllaDBNew Ways to Reduce Database Costs with ScyllaDB
New Ways to Reduce Database Costs with ScyllaDB
ScyllaDB
 
Palo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity FoundationPalo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity Foundation
VICTOR MAESTRE RAMIREZ
 
Maxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing placeMaxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing place
usersalmanrazdelhi
 
Cyber security cyber security cyber security cyber security cyber security cy...
Cyber security cyber security cyber security cyber security cyber security cy...Cyber security cyber security cyber security cyber security cyber security cy...
Cyber security cyber security cyber security cyber security cyber security cy...
pranavbodhak
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
AI Trends - Mary Meeker
AI Trends - Mary MeekerAI Trends - Mary Meeker
AI Trends - Mary Meeker
Razin Mustafiz
 
TrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy ContractingTrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy Contracting
TrustArc
 
Jira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : IntroductionJira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : Introduction
Ravi Teja
 
Gihbli AI and Geo sitution |use/misuse of Ai Technology
Gihbli AI and Geo sitution |use/misuse of Ai TechnologyGihbli AI and Geo sitution |use/misuse of Ai Technology
Gihbli AI and Geo sitution |use/misuse of Ai Technology
zainkhurram1111
 
Dev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API WorkflowsDev Dives: System-to-system integration with UiPath API Workflows
Dev Dives: System-to-system integration with UiPath API Workflows
UiPathCommunity
 
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyesEnd-to-end Assurance for SD-WAN & SASE with ThousandEyes
End-to-end Assurance for SD-WAN & SASE with ThousandEyes
ThousandEyes
 
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AI Emotional Actors:  “When Machines Learn to Feel and Perform"AI Emotional Actors:  “When Machines Learn to Feel and Perform"
AI Emotional Actors: “When Machines Learn to Feel and Perform"
AkashKumar809858
 
6th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 20256th Power Grid Model Meetup - 21 May 2025
6th Power Grid Model Meetup - 21 May 2025
DanBrown980551
 
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025
Lorenzo Miniero
 
Evaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical ContentEvaluation Challenges in Using Generative AI for Science & Technical Content
Evaluation Challenges in Using Generative AI for Science & Technical Content
Paul Groth
 
Introducing the OSA 3200 SP and OSA 3250 ePRC
Introducing the OSA 3200 SP and OSA 3250 ePRCIntroducing the OSA 3200 SP and OSA 3250 ePRC
Introducing the OSA 3200 SP and OSA 3250 ePRC
Adtran
 
Cyber Security Legal Framework in Nepal.pptx
Cyber Security Legal Framework in Nepal.pptxCyber Security Legal Framework in Nepal.pptx
Cyber Security Legal Framework in Nepal.pptx
Ghimire B.R.
 
Data Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any ApplicationData Virtualization: Bringing the Power of FME to Any Application
Data Virtualization: Bringing the Power of FME to Any Application
Safe Software
 
Introducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and ARIntroducing FME Realize: A New Era of Spatial Computing and AR
Introducing FME Realize: A New Era of Spatial Computing and AR
Safe Software
 
Let’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack CommunityLet’s Get Slack Certified! 🚀- Slack Community
Let’s Get Slack Certified! 🚀- Slack Community
SanjeetMishra29
 
New Ways to Reduce Database Costs with ScyllaDB
New Ways to Reduce Database Costs with ScyllaDBNew Ways to Reduce Database Costs with ScyllaDB
New Ways to Reduce Database Costs with ScyllaDB
ScyllaDB
 
Palo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity FoundationPalo Alto Networks Cybersecurity Foundation
Palo Alto Networks Cybersecurity Foundation
VICTOR MAESTRE RAMIREZ
 
Maxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing placeMaxx nft market place new generation nft marketing place
Maxx nft market place new generation nft marketing place
usersalmanrazdelhi
 
Cyber security cyber security cyber security cyber security cyber security cy...
Cyber security cyber security cyber security cyber security cyber security cy...Cyber security cyber security cyber security cyber security cyber security cy...
Cyber security cyber security cyber security cyber security cyber security cy...
pranavbodhak
 
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPath Community Berlin: Studio Tips & Tricks and UiPath Insights
UiPathCommunity
 
AI Trends - Mary Meeker
AI Trends - Mary MeekerAI Trends - Mary Meeker
AI Trends - Mary Meeker
Razin Mustafiz
 
TrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy ContractingTrustArc Webinar: Mastering Privacy Contracting
TrustArc Webinar: Mastering Privacy Contracting
TrustArc
 
Jira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : IntroductionJira Administration Training – Day 1 : Introduction
Jira Administration Training – Day 1 : Introduction
Ravi Teja
 

Building Pluggable Web Applications using Django

  • 1. Introduction Using django Features of django Reuseable apps End Notes Building Pluggable Web Applications using Lakshman Prasad Agiliq Solutions April 21, 2010
  • 2. Introduction Using django Features of django Reuseable apps End Notes • For building database driven web applications
  • 3. Introduction Using django Features of django Reuseable apps End Notes • For building database driven web applications • Emphasis on Reuse, DRY and simplicity
  • 4. Introduction Using django Features of django Reuseable apps End Notes Hypothetical Application
  • 5. Introduction Using django Features of django Reuseable apps End Notes Install a pluggable app django-star-rating $pip install django-star-rating INSTALLED APPS = ( ’ django . c o n t r i b . auth ’ , ’ django . c o n t r i b . contenttypes ’ , ’ django . c o n t r i b . sessions ’ , ’ django . c o n t r i b . sites ’ , ’ django . c o n t r i b . admin ’ , ’ starrating ’ , )
  • 6. Introduction Using django Features of django Reuseable apps End Notes Point to an url pattern from b l o g . m o d e l s import P o s t urlpatterns = patterns ( ’ ’ , ( r ’ ˆ$ ’ , ’ b l o g . v i e w s . i n d e x ’ ) , ( r ’ s t a r i n g /$ ’ , { model : P o s t } , ’ s t a r r a t i n g . views . star ’ ) , )
  • 7. Introduction Using django Features of django Reuseable apps End Notes Put the rating where you want! <html> <head> < t i t l e>{{ page . t i t l e }}</ t i t l e> <body> {% s t a r r a t i n g %} <d i v> {{ page . c o n t e n t }} </ d i v> ... </body> ...
  • 8. Introduction Using django Features of django Reuseable apps End Notes Thats it!
  • 9. Introduction Using django Features of django Reuseable apps End Notes Introduction Definition A Case Study: Youtube Stars Overview Philosophy Using django MTV Features of django Features Reuseable apps Writing reuseable apps Community Applications End Notes Django Stats Common Enterprise Hurdles Other
  • 10. Introduction Using django Features of django Reuseable apps End Notes Developed at Lawrence-Journal World
  • 11. 5 million hits per month
  • 13. Majority of the features community contributed
  • 14. 5 years since Open Source
  • 15. Introduction Using django Features of django Reuseable apps End Notes Philosophy
  • 18. Introduction Using django Features of django Reuseable apps End Notes Convention Over Configuration
  • 22. Introduction Using django Features of django Reuseable apps End Notes Model Syntax from d j a n g o . db import m o d e l s c l a s s P o s t ( m o d e l s . Model ) : t i t l e = m o d e l s . C h a r F i e l d ( m a x l e n g t h =100) t e x t = models . T e x t F i e l d ( ) datetime = models . DateTimeField ( ) c l a s s Meta : o r d e r i n g = ( ’−d a t e t i m e ’ , ) def unicode ( self ): return s e l f . t i t l e c l a s s Comment ( m o d e l s . Model ) : post = models . ForeignKey ( Post ) t e x t = models . T e x t F i e l d ( )
  • 23. Introduction Using django Features of django Reuseable apps End Notes Model API >>>from b l o g . m o d e l s import Post , Comment >>>p o s t = P o s t . o b j e c t s . a l l ( ) [ 0 ] >>>p o s t c o m m e n t s = p o s t . c om m en t s et . a l l ( )
  • 24. Introduction Using django Features of django Reuseable apps End Notes Admin by models alone
  • 25. Introduction Using django Features of django Reuseable apps End Notes Admin Syntax from d j a n g o . c o n t r i b import admin from m o d e l s import Post , Comment c l a s s PostAdmin ( admin . ModelAdmin ) : l i s t d i s p l a y = ( ’ t i t l e ’ , ’ datetime ’ ) c l a s s CommentAdmin ( admin . ModelAdmin ) : l i s t d i s p l a y = ( ’ text ’ ,) admin . s i t e . r e g i s t e r ( Post , PostAdmin ) admin . s i t e . r e g i s t e r ( Comment , CommentAdmin )
  • 29. Introduction Using django Features of django Reuseable apps End Notes Ugly urls h t t p : / / a r t . com/ a r t g a l l e r y / d e f a u l t . a s p ? s i d =9DF4BC0580DF11D3ACB60090271E26A8 &command= f r e e l i s t h t t p : / / p r e v i e w . y n o t . com/ c g i b i n / n d C G I 5 0 . c g i / Y n o t P h o e n i x / CFsMain .
  • 30. Introduction Using django Features of django Reuseable apps End Notes Good urls h t t p : / /www. w i r e d . com/ a p p l e / MacbookPro / h t t p : / / devmarch . com/ d e v e l o p e r s u m m i t / s p e a k e r s . html
  • 31. Introduction Using django Features of django Reuseable apps End Notes django url pattern from b l o g . m o d e l s import P o s t urlpatterns = patterns ( ’ ’ , ( r ’ ˆ$ ’ , ’ b l o g . v i e w s . i n d e x ’ ) , ( r ’ s t a r i n g /$ ’ , { model : P o s t } , ’ s t a r r a t i n g . views . star ’ ) , )
  • 32. Views
  • 33. Introduction Using django Features of django Reuseable apps End Notes django views from d j a n g o . h t t p import H t t p R e s p o n s e def p o s t ( r e q u e s t ) : r e t u r n H t t p R e s p o n s e ( ’ H e l l o World ! ’ )
  • 34. Introduction Using django Features of django Reuseable apps End Notes django views def p o s t ( r e q u e s t , p o s t i d ) : p o s t = P o s t . o b j e c t s . g e t ( pk=p o s t i d ) i f r e q . method == ’POST ’ : comment form = CommentForm ( r e q u e s t . POST) comment = comment form . s a v e ( ) payload = { ’ post ’ : post , ’ comments ’ : Comment . o b j e c t s . f i l t e r ( p o s t i d=p o s t i d ) , ’ comment form ’ : CommentForm ( ) } r e t u r n r e n d e r t o r e s p o n s e ( ’ p o s t . html ’ , payload , RequestContext ( req ))
  • 36. Introduction Using django Features of django Reuseable apps End Notes django template {% e x t e n d s ” b a s e . html ” %} {% b l o c k body %} {% i f u s e r . i s a u t h e n t i c a t e d %} Welcome {{ u s e r . g e t f u l l n a m e }} {% e l s e %} {% i n c l u d e ” l o g i n . html ” %} {% e n d i f %} ... {% e n d b l o c k %}
  • 38. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface
  • 39. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views
  • 40. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools
  • 41. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions
  • 42. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication
  • 43. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication • Caching
  • 44. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication • Caching • Internationalization
  • 45. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication • Caching • Internationalization • RSS
  • 46. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication • Caching • Internationalization • RSS • CSRF protection
  • 47. Introduction Using django Features of django Reuseable apps End Notes • Admin Interface • Generic Views • Testing Tools • Sessions • Authentication • Caching • Internationalization • RSS • CSRF protection • File Storage
  • 49. Introduction Using django Features of django Reuseable apps End Notes General conventions adopted by the community
  • 50. Introduction Using django Features of django Reuseable apps End Notes Use template tags <p>The t i m e i s {% c u r r e n t t i m e ”%I :%M %p” %}.</p> from d j a n g o import t e m p l a t e def d o c u r r e n t t i m e ( p a r s e r , t o k e n ) : tag name , f o r m a t s t r i n g = t o k e n . s p l i t c o n t e n t s ( ) r e t u r n CurrentTimeNode ( f o r m a t s t r i n g [ 1 : − 1 ] )
  • 51. Introduction Using django Features of django Reuseable apps End Notes Use Signals from d j a n g o . c o r e . s i g n a l s import r e q u e s t f i n i s h e d r e q u e s t f i n i s h e d . connect ( my callback ) from d j a n g o . db . m o d e l s . s i g n a l s import p r e s a v e from myapp . m o d e l s import MyModel def m y h a n d l e r ( s e n d e r , ∗∗ k w a r g s ) : ... p r e s a v e . c o n n e c t ( m y h a n d l e r , s e n d e r=MyModel )
  • 52. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where
  • 53. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where • Write urls in applications
  • 54. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where • Write urls in applications • Import from the application level
  • 55. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where • Write urls in applications • Import from the application level • Prefix template name with directory
  • 56. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where • Write urls in applications • Import from the application level • Prefix template name with directory • Use MEDIA_URL in templates
  • 57. Introduction Using django Features of django Reuseable apps End Notes Basics • Take template_name and extra_context every where • Write urls in applications • Import from the application level • Prefix template name with directory • Use MEDIA_URL in templates • Reverse url patterns
  • 58. Introduction Using django Features of django Reuseable apps End Notes Basics Done right def r e g i s t e r ( r e q u e s t , backend , s u c c e s s u r l=None , f o r m c l a s s=None , d i s a l l o w e d u r l= ’ registration disallowed ’ , t e m p l a t e n a m e= ’ r e g i s t r a t i o n / r e g i s t r a t i o n f o r m . html ’ , e x t r a c o n t e x t=None ) : ... return r e n d e r t o r e s p o n s e ( template name , { ’ form ’ : form } , context )
  • 59. Introduction Using django Features of django Reuseable apps End Notes Advanced • Use Template Response
  • 60. Introduction Using django Features of django Reuseable apps End Notes Advanced • Use Template Response • Write Views as Classes
  • 61. There is an app for that
  • 62. For every size and style
  • 63. Introduction Using django Features of django Reuseable apps End Notes Github Search ”django”
  • 64. Introduction Using django Features of django Reuseable apps End Notes
  • 65. Introduction Using django Features of django Reuseable apps End Notes Pinax Features • openid support • email verification • password management • site announcements • a notification framework • user-to-user messaging • friend invitation (both internal and external to the site) • a basic twitter clone • oembed support • gravatar support • interest groups (called tribes) • projects with basic task and issue management • threaded discussions • wikis with multiple markup support • blogging • bookmarks
  • 66. Introduction Using django Features of django Reuseable apps End Notes django-mingus django extensions view cache utils basic contact form flatblocks honeypot disqus sugar navbar quoteme djangodblog django− s t a t i c f i l e s sorl django−b i t l y oembded d j a n g o −t w i t t e r template utils python−t w i t t e r django proxy d j a n g o −wysiwyg compressor d j a n g o −s l i m m e r django markup d j a n g o −c r o p p e r google analytics d j a n g o −r e q u e s t
  • 68. Introduction Using django Features of django Reuseable apps End Notes Popular Users • Media • LA Times • NY Times • Washington Post • Guardian
  • 69. Introduction Using django Features of django Reuseable apps End Notes Popular Users • Media • LA Times • NY Times • Washington Post • Guardian • Web2.0 • Mahalo: 10 million Page views • Pownce, SixApart
  • 70. Introduction Using django Features of django Reuseable apps End Notes Popular Users • Media • LA Times • NY Times • Washington Post • Guardian • Web2.0 • Mahalo: 10 million Page views • Pownce, SixApart • Full List: djangosites.com
  • 71. Introduction Using django Features of django Reuseable apps End Notes NASA After an extensive trade study, we selected Django ... as the first and primary application environment for the Nebula Cloud.
  • 72. Introduction Using django Features of django Reuseable apps End Notes Enterprise Adoption Hurdles • Multiple Databases
  • 73. Introduction Using django Features of django Reuseable apps End Notes Enterprise Adoption Hurdles • Multiple Databases • Dynamic settings infrastructure
  • 74. Introduction Using django Features of django Reuseable apps End Notes Enterprise Adoption Hurdles • Multiple Databases • Dynamic settings infrastructure • Tools
  • 75. Introduction Using django Features of django Reuseable apps End Notes About Me • [email protected], @becomingGuru • lakshmanprasad.com • Agiliq Solutions Formerly, Usware Technologies @agiliq • Team of Expert Django Developers, Happy Clients
  • 77. Introduction Using django Features of django Reuseable apps End Notes Image Attributions h t t p : / /www . f l i c k r . com/ p h o t o s / t e j e d o r o d e l u z /3157690060/ h t t p : / /www . f l i c k r . com/ p h o t o s /23820645 @N05 /4287681570/ h t t p : / /www . f l i c k r . com/ p h o t o s / a i d a n j o n e s /3575000735/ http :// j a c o b i a n . org / h t t p : / / s a n j u a n c o l l e g e . edu / l i b / i m a g e s / p h i l o s o p h y b r a i n . j p g h t t p : / /www . f l i c k r . com/ p h o t o s / uhop /105062059/ h t t p : / / s 3 . amazonaws . com/memebox/ u p l o a d s /136/ e x p o n e n t i a l g r a p h 2 . j p g h t t p : / / g e e k a n d p o k e . t y p e p a d . com/ g e e k a n d p o k e / i m a g e s /2008/06/03/ s e x p l 1 8 . j p g h t t p : / /www . f l i c k r . com/ p h o t o s / go /253819/ h t t p : / / a r o u n d t h e s p h e r e . f i l e s . w o r d p r e s s . com /2009/05/ s w i s s −army−k n i f e . j p g h t t p : / /www . f r e e f o t o . com/ i m a g e s /41/04/41 0 4 9− −Keep−L e f t w e b . j p g − h t t p : / /www . f l i c k r . com/ p h o t o s / o r i n r o b e r t j o h n /114430223/
  • 78. ?