Django, What is it, Why is it cool?


Published on

This text presentation attempts to hit on the highlight features and structure of Django and its ecco-system. It is intended as an introduction for those who are curious about , what is it?

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • If I don't know what Python or Pinax is, why should I care?  First slide needs to grab attention.  Make a statement:  "here's what Django can do for you!"
  • What is a Modern Framework? HOw does that help me?  Here's where a diagrem might help.
  • something like this.  I am sure this isn't accurate but a comparison would be great.  Perhaps followed by a software diagram for both.  How about a workflow showing the steps to building an application old school versus Django? 
  • Good, its important to name drop to establish credibilty and continuity. 
  • Does this mean the underpinings are already done?  How does this improve my need to deploy and maintain a teller application?  How does this lower the cost of your company's product? I like this, I think most CIO's would know what a MVC is. How about a contrast of MVC vs MVT?
  • Again, I think a workflow diagram showing how a developer goes about developing with C++. Visual Basic, verus Python Django would be helpful.   Also, a diagram showing the interdependence on Python, Django and Pinax. 
  • I think we need some kind of schematic of the hardware layout:  where does the logic reside (local server, central servier, workstation).  Is it browser based?  Smart clent?   Disaster recovery? Version control? Can I run two different versions at the same time (conversions)?
  • Good, is this where object orientation or SOA resides?   So, PInax are pre-assembled objects, DJango is the framework and Python is what? Can that be shown graphically, in some kind of picture?
  • Again, this needs to be tied back to a CIO's needs:  version control, central administration, security, agility, scalability, reliability. etc.  
  • Django, What is it, Why is it cool?

    1. 1. Django, What is it, Why is it cool? 'Cause it is built on Python and has Pinax on top, and they are all Open Source
    2. 2. Why do I care? <ul><li>Open Source </li></ul><ul><li>Low cost </li></ul><ul><li>Platform Agnostic </li></ul><ul><li>No vendor lock in </li></ul><ul><li>High Performance </li></ul><ul><li>Modern architecture </li></ul><ul><li>Standards Compliant </li></ul><ul><li>Highly Modular </li></ul><ul><li>Widely supported </li></ul><ul><li>Internationalization support LtR language support </li></ul>
    3. 3. Django Is a Python Framework Not just a Web framework What is Python?
    4. 4. Traditional Approach vs. Django <ul><li>Build Data Dictionary </li></ul><ul><li>Build Data Base Interface </li></ul><ul><li>Build Authoring Tools </li></ul><ul><li>Build Logic </li></ul><ul><li>Paint Templates </li></ul><ul><li>Build Data Flow </li></ul>Done Done Done Done Done  Done Traditional Model                      Django
    5. 5. Python <ul><li>An Interpreted Language with extensive corporate usage and sponsorship  </li></ul><ul><li>Inherently Multiplatform Linux, Windows, Mac (some others) </li></ul><ul><li>Inherently Multi Language (multi character support also) </li></ul><ul><li>Many &quot;packages&quot; covering a wide variety of domains </li></ul><ul><li>Math : scipy  </li></ul><ul><li>Image Recognition </li></ul><ul><li>Corporate sponsorship: </li></ul><ul><li>Google </li></ul><ul><li>Microsoft (Iron Python) </li></ul><ul><li>Sun (Jython) </li></ul>
    6. 6. Django <ul><li>Lots of users: </li></ul><ul><li>Google </li></ul><ul><li>NASA </li></ul><ul><li>PBS </li></ul><ul><li>Bit-Bucket </li></ul><ul><li>Newspapers </li></ul>
    7. 7. Django as a framework <ul><li>  An MVC type framework (Called MVT in Django) </li></ul><ul><ul><li>M= Model, The database interface </li></ul></ul><ul><ul><li>V= View, Logic for getting stuff in and out of the database </li></ul></ul><ul><ul><li>T= Template, The display logic </li></ul></ul><ul><li>Closest competitor is Ruby on Rails Microsoft playing catch up in MVC frameworks still almost Beta Java examples are Grails, Spring, Struts or Java Server Faces PHP has dozens Symfony, CodeIgniter </li></ul><ul><li>  </li></ul><ul><li>For the Web MVT (or MVC) is as important a concept as &quot;Structured Programming&quot; and dates back to 1979. </li></ul><ul><li>  </li></ul><ul><li>Enables easier maintenance and independent development of functional modules with different skill sets </li></ul>
    8. 8. Django layers (MVT) <ul><li>Model ..View...Template </li></ul><ul><li>Model </li></ul><ul><ul><li>Database interface an abstraction </li></ul></ul><ul><ul><li>Supports: </li></ul></ul><ul><ul><ul><ul><li>Mysql </li></ul></ul></ul></ul><ul><ul><ul><ul><li>MSsql </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Oracle </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Postgre Sql </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IBM Db2 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Sql lite </li></ul></ul></ul></ul><ul><ul><li>In general: change the DataBase and don't touch your code </li></ul></ul><ul><li>Define model, Admin gets generated automatically </li></ul><ul><li>So does the database </li></ul><ul><li>Most data editing </li></ul>
    9. 9. Django View <ul><li>Most Business logic </li></ul><ul><li>edits, calculations </li></ul><ul><li>permissions </li></ul><ul><li>many libraries available </li></ul><ul><li>Context processors: </li></ul><ul><li>More advanced business logic </li></ul>
    10. 10. Template <ul><li>Simple template language </li></ul><ul><li>Css is separate </li></ul><ul><li>designed for non technical users such as designers </li></ul><ul><li>Easily able to use other Template models (Jinga) </li></ul><ul><li>Can be used with most advanced front end tools: </li></ul><ul><ul><li>Ajax </li></ul></ul><ul><ul><li>Jquery </li></ul></ul><ul><ul><li>Pyjamas (an upcoming Python Web Presentation tool) </li></ul></ul><ul><ul><li>Flash </li></ul></ul><ul><ul><li>Adobe Air </li></ul></ul>
    11. 11. Other Django features <ul><li>Unique in being built on standard language and able to take advantage of libraries developed for other purposes, Imaging, graphics, scientific calculations and many more. </li></ul><ul><li>Extensive configuration file </li></ul><ul><ul><li>Different Databases </li></ul></ul><ul><ul><li>Different sites </li></ul></ul><ul><ul><li>Different operating systems </li></ul></ul><ul><ul><li>Different Caching frameworks </li></ul></ul><ul><li>Structure allows site optimization across specialized servers </li></ul><ul><ul><li>Static media </li></ul></ul><ul><ul><li>Media </li></ul></ul><ul><li>And now also Pinax which is a  collection of pre-configured applications written in Django </li></ul>
    12. 12. Other Django features continued <ul><li>Loosely coupled </li></ul><ul><li>Alternative Model layer, Sql Alchemy </li></ul><ul><li>Alternative Template layer, Jinga, Jinga2 </li></ul><ul><li>Many users constantly adding modules and features </li></ul>
    13. 13. Pinax <ul><li>Pre-assembled Django Applications </li></ul><ul><li>Permissions </li></ul><ul><li>Blog </li></ul><ul><li>Social site </li></ul><ul><li>Project site </li></ul><ul><li>Sales site </li></ul>
    14. 14. Tools <ul><li>Python </li></ul><ul><li>Python Debug tools </li></ul><ul><li>Django debug toolbar </li></ul><ul><li>Eclipse Pydev </li></ul><ul><li>Pylint </li></ul><ul><li>Pytest Doc test Unit test </li></ul><ul><li>Embedded documentation via Sphinx </li></ul><ul><li>Change control done with Distributed change control tool GIT (used by the Linux development team) </li></ul>