SlideShare a Scribd company logo
Why Python Frameworks Are Changing the Web Joel Burton [email_address] Pycon New Zealand 2009
Long, Long Ago...
Avert Your Gaze! <H1><! print $title; !></H1> <UL> <% SELECT name FROM friends %> <LI><! print $name; !></LI> </UL>
“ Beautiful is better than ugly ”
“ Experience  is simply the    name we give  our mistakes ” ―  Oscar Wilde
Zope 3 “ Explicit  is better than  implicit . ”
Grok! “ Although  practicality beats  purity . ”
“ I’m not a  Plone  evangelist .   I’m a  Plone  survivor .” ―  Chris Calloway ttw rich editing versioning custom content types form generation app dev tools caching systems theming ajax add ons
repoze.bfg “ Do as  little as possible ,  but  do it well ! ”
 
 
N y e t w o r k s “ It’s  so easy  to write a web framework in Python,  why would you  use someone else’s?”
Attribute-Based Templates Zope Page Templates, Genshi, ... <h1   tal:replace =&quot;title&quot; > [title here] </h1> <ul> <li  tal:replace =&quot;friend friends&quot; tal:content =&quot;friend/name&quot; > [friend] </li> </ul>
Codelined Templates Mako, Jinja, Cheetah, ... <table> #for $client in $clients <tr> <td> $client.surname, $client.firstname </td> <td> <a href=&quot;mailto: $client.email &quot;> $client.email </a> </td> </tr> #end for </table>
Deliverance <prepend theme=&quot;//head&quot;  content=&quot;//head/link&quot; nocontent=&quot;ignore&quot; />  <append-or-replace theme=&quot;//head&quot; content=&quot;//head/title&quot; nocontent=&quot;ignore&quot; /> <copy theme=&quot;//div[@id='container']&quot; content=&quot;//div[@id='region-content']/div[3]&quot; /> * check it out!  http://www.coactivate.org/projects/deliverance
URL -> Database? /path/to/folder/in/database
…  or take a route? urlpatterns = patterns('', (r'^articles/2003/$', 'news.views.special_case_2003'),  (r'^articles/({4})/$', 'news.views.year_archive'), (r'^articles/({4})/({2})/$', 'news.views.month'), (r'^articles/({4})/({2})/(+)/$', 'news.views'), )
ZODB
Object-Relational Mappers SQLObject SQLAlchemy ...
“ The Internet is...   a  series of tubes . ” ―  Ted Stevens, US Senator, Alaska WSGI * start here:   http://archimedeanco.com/wsgi-tutorial/
do repeat yourself http://pypi.python.org/pypi/zc.buildout apache varnish pound squid supervisor backup
how   did  we get    here?
*security “ PHP isn’t a  bad language . It’s just used by  bad people .”
CVEs in Last 3 Years http://plone.org/products/plone/security
the results? Powered by Plone
Testing “ Untested code is broken code.” repoze.bfg has 100% test coverage
interfaces & adapters
culture “ Readability counts.”
Conferences Plone Conference, Naples, Italy
Friends in High Places
Componentizing our code Relicensing project Sharing widely with repoze & grok Loving interfaces/adapters Broadening test coverage Integrating AJAX frameworks Innovating in UI concepts
so...   what can  you     do? “ mr. lyle”
…  thanks! PyCon New Zealand Tim Knapp The Plone Foundation Chris Calloway Photo Credits: http://www.flickr.com/photos/alf07/ http://www.flickr.com/photos/thetruthabout http://www.flickr.com/photos/chavals http://www.flickr.com/photos/32530713@N08 http://www.flickr.com/photos/caveman_92223 http://www.flickr.com/photos/santos http://www.flickr.com/photos/atomicshed http://www.flickr.com/photos/vidio All images taken by author or from above Creative Commons-licensed works.
Have a great conference &  keep in touch: [email_address]

More Related Content

What's hot

Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
Tatsuhiko Miyagawa
 
Theming for BuddyPress
Theming for BuddyPressTheming for BuddyPress
Theming for BuddyPress
boonebgorges
 

What's hot (20)

Wordpress database
Wordpress databaseWordpress database
Wordpress database
 
HTML5 Essentials
HTML5 EssentialsHTML5 Essentials
HTML5 Essentials
 
Wordpress Meetup 2 23 10
Wordpress Meetup 2 23 10Wordpress Meetup 2 23 10
Wordpress Meetup 2 23 10
 
Findability Bliss Through Web Standards
Findability Bliss Through Web StandardsFindability Bliss Through Web Standards
Findability Bliss Through Web Standards
 
Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8Web Scraper Shibuya.pm tech talk #8
Web Scraper Shibuya.pm tech talk #8
 
A brief history of the web
A brief history of the webA brief history of the web
A brief history of the web
 
Basic HTML
Basic HTMLBasic HTML
Basic HTML
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
 
#1 HTML [know-how]
#1 HTML [know-how]#1 HTML [know-how]
#1 HTML [know-how]
 
REST: Theory vs Practice
REST: Theory vs PracticeREST: Theory vs Practice
REST: Theory vs Practice
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patterns
 
Theming for BuddyPress
Theming for BuddyPressTheming for BuddyPress
Theming for BuddyPress
 
More Secrets of JavaScript Libraries
More Secrets of JavaScript LibrariesMore Secrets of JavaScript Libraries
More Secrets of JavaScript Libraries
 
3 php forms
3 php forms3 php forms
3 php forms
 
Mobile web-apps
Mobile web-appsMobile web-apps
Mobile web-apps
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Angular js活用事例:filydoc
Angular js活用事例:filydocAngular js活用事例:filydoc
Angular js活用事例:filydoc
 
Interacting with the DOM (JavaScript)
Interacting with the DOM (JavaScript)Interacting with the DOM (JavaScript)
Interacting with the DOM (JavaScript)
 
High Performance Social Plugins
High Performance Social PluginsHigh Performance Social Plugins
High Performance Social Plugins
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 

Viewers also liked

Viewers also liked (15)

Python and the Web
Python and the WebPython and the Web
Python and the Web
 
Introduction to Python and Web Programming
Introduction to Python and Web ProgrammingIntroduction to Python and Web Programming
Introduction to Python and Web Programming
 
Snakes on the Web
Snakes on the WebSnakes on the Web
Snakes on the Web
 
Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
 
An Introduction to Twisted
An Introduction to TwistedAn Introduction to Twisted
An Introduction to Twisted
 
Python talk web frameworks
Python talk web frameworksPython talk web frameworks
Python talk web frameworks
 
Зоопарк python веб-фреймворков
Зоопарк python веб-фреймворковЗоопарк python веб-фреймворков
Зоопарк python веб-фреймворков
 
Чем Python плох для стартапа?
Чем Python плох для стартапа?Чем Python плох для стартапа?
Чем Python плох для стартапа?
 
Asynchronous Python with Twisted
Asynchronous Python with TwistedAsynchronous Python with Twisted
Asynchronous Python with Twisted
 
Framework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs ChaliceFramework Battle: Django vs Flask vs Chalice
Framework Battle: Django vs Flask vs Chalice
 
LvivPy - Flask in details
LvivPy - Flask in detailsLvivPy - Flask in details
LvivPy - Flask in details
 
Async Web Frameworks in Python
Async Web Frameworks in PythonAsync Web Frameworks in Python
Async Web Frameworks in Python
 
Web Scraping with Python
Web Scraping with PythonWeb Scraping with Python
Web Scraping with Python
 
Scraping the web with python
Scraping the web with pythonScraping the web with python
Scraping the web with python
 
UX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and ArchivesUX, ethnography and possibilities: for Libraries, Museums and Archives
UX, ethnography and possibilities: for Libraries, Museums and Archives
 

Similar to Why Python Web Frameworks Are Changing the Web

Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITPLecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITP
yucefmerhi
 
Mobile library on drupal cil2011
Mobile library on drupal   cil2011Mobile library on drupal   cil2011
Mobile library on drupal cil2011
sc20866
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
Tony Hammond
 
BNC Tech Forum 09: Lexcycle Stanza demo
BNC Tech Forum 09: Lexcycle Stanza demoBNC Tech Forum 09: Lexcycle Stanza demo
BNC Tech Forum 09: Lexcycle Stanza demo
BookNet Canada
 

Similar to Why Python Web Frameworks Are Changing the Web (20)

Ant
Ant Ant
Ant
 
Evolution of API With Blogging
Evolution of API With BloggingEvolution of API With Blogging
Evolution of API With Blogging
 
Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)Phing - A PHP Build Tool (An Introduction)
Phing - A PHP Build Tool (An Introduction)
 
Lca2009 Video A11y
Lca2009 Video A11yLca2009 Video A11y
Lca2009 Video A11y
 
Lecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITPLecture 6 - Comm Lab: Web @ ITP
Lecture 6 - Comm Lab: Web @ ITP
 
Mobile library on drupal cil2011
Mobile library on drupal   cil2011Mobile library on drupal   cil2011
Mobile library on drupal cil2011
 
Agile Descriptions
Agile DescriptionsAgile Descriptions
Agile Descriptions
 
Apache Ant
Apache AntApache Ant
Apache Ant
 
DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8DevDays09 Internet Explorer 8
DevDays09 Internet Explorer 8
 
Developing Gadgets
Developing GadgetsDeveloping Gadgets
Developing Gadgets
 
Future Of Web Languages
Future Of Web LanguagesFuture Of Web Languages
Future Of Web Languages
 
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
Enterprise Google Gadgets Integrated with Alfresco - Open Source ECM
 
Mojolicious on Steroids
Mojolicious on SteroidsMojolicious on Steroids
Mojolicious on Steroids
 
Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1Optaros Surf Code Camp Walkthrough 1
Optaros Surf Code Camp Walkthrough 1
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
BNC Tech Forum 09: Lexcycle Stanza demo
BNC Tech Forum 09: Lexcycle Stanza demoBNC Tech Forum 09: Lexcycle Stanza demo
BNC Tech Forum 09: Lexcycle Stanza demo
 
Sword v2 at UKCoRR
Sword v2 at UKCoRRSword v2 at UKCoRR
Sword v2 at UKCoRR
 
Lecture1 B Frames&Forms
Lecture1 B  Frames&FormsLecture1 B  Frames&Forms
Lecture1 B Frames&Forms
 
Xml Zoe
Xml ZoeXml Zoe
Xml Zoe
 
Xml Zoe
Xml ZoeXml Zoe
Xml Zoe
 

Recently uploaded

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 

Recently uploaded (20)

Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Why Python Web Frameworks Are Changing the Web

  • 1. Why Python Frameworks Are Changing the Web Joel Burton [email_address] Pycon New Zealand 2009
  • 3. Avert Your Gaze! <H1><! print $title; !></H1> <UL> <% SELECT name FROM friends %> <LI><! print $name; !></LI> </UL>
  • 4. “ Beautiful is better than ugly ”
  • 5. “ Experience is simply the name we give our mistakes ” ― Oscar Wilde
  • 6. Zope 3 “ Explicit is better than implicit . ”
  • 7. Grok! “ Although practicality beats purity . ”
  • 8. “ I’m not a Plone evangelist . I’m a Plone survivor .” ― Chris Calloway ttw rich editing versioning custom content types form generation app dev tools caching systems theming ajax add ons
  • 9. repoze.bfg “ Do as little as possible , but do it well ! ”
  • 10.  
  • 11.  
  • 12. N y e t w o r k s “ It’s so easy to write a web framework in Python, why would you use someone else’s?”
  • 13. Attribute-Based Templates Zope Page Templates, Genshi, ... <h1 tal:replace =&quot;title&quot; > [title here] </h1> <ul> <li tal:replace =&quot;friend friends&quot; tal:content =&quot;friend/name&quot; > [friend] </li> </ul>
  • 14. Codelined Templates Mako, Jinja, Cheetah, ... <table> #for $client in $clients <tr> <td> $client.surname, $client.firstname </td> <td> <a href=&quot;mailto: $client.email &quot;> $client.email </a> </td> </tr> #end for </table>
  • 15. Deliverance <prepend theme=&quot;//head&quot; content=&quot;//head/link&quot; nocontent=&quot;ignore&quot; /> <append-or-replace theme=&quot;//head&quot; content=&quot;//head/title&quot; nocontent=&quot;ignore&quot; /> <copy theme=&quot;//div[@id='container']&quot; content=&quot;//div[@id='region-content']/div[3]&quot; /> * check it out! http://www.coactivate.org/projects/deliverance
  • 16. URL -> Database? /path/to/folder/in/database
  • 17. … or take a route? urlpatterns = patterns('', (r'^articles/2003/$', 'news.views.special_case_2003'), (r'^articles/({4})/$', 'news.views.year_archive'), (r'^articles/({4})/({2})/$', 'news.views.month'), (r'^articles/({4})/({2})/(+)/$', 'news.views'), )
  • 18. ZODB
  • 20. “ The Internet is... a series of tubes . ” ― Ted Stevens, US Senator, Alaska WSGI * start here: http://archimedeanco.com/wsgi-tutorial/
  • 21. do repeat yourself http://pypi.python.org/pypi/zc.buildout apache varnish pound squid supervisor backup
  • 22. how did we get here?
  • 23. *security “ PHP isn’t a bad language . It’s just used by bad people .”
  • 24. CVEs in Last 3 Years http://plone.org/products/plone/security
  • 26. Testing “ Untested code is broken code.” repoze.bfg has 100% test coverage
  • 30. Friends in High Places
  • 31. Componentizing our code Relicensing project Sharing widely with repoze & grok Loving interfaces/adapters Broadening test coverage Integrating AJAX frameworks Innovating in UI concepts
  • 32. so... what can you do? “ mr. lyle”
  • 33. … thanks! PyCon New Zealand Tim Knapp The Plone Foundation Chris Calloway Photo Credits: http://www.flickr.com/photos/alf07/ http://www.flickr.com/photos/thetruthabout http://www.flickr.com/photos/chavals http://www.flickr.com/photos/32530713@N08 http://www.flickr.com/photos/caveman_92223 http://www.flickr.com/photos/santos http://www.flickr.com/photos/atomicshed http://www.flickr.com/photos/vidio All images taken by author or from above Creative Commons-licensed works.
  • 34. Have a great conference & keep in touch: [email_address]