SlideShare uma empresa Scribd logo
1 de 14
Baixar para ler offline
Python Web Technologies

An overview of the various Python
        web technologies
What I'll Go Over

● Frameworks
● Micro Frameworks
● Templating languages
● The state of Python 3 and the web
● NOSQL
Frameworks Covered


● Django
● Pyramid
● A brief mention of Pylons and Turbogears
● Bluebream
● web2py
● Flask(micro-framework)
● Bottle
A note about WSGI

"WSGI is the Web Server Gateway Interface. It is a
specification for web servers and application servers to
communicate with web applications (though it can also be used
for more than that). It is a Python standard, described in detail
in PEP 333."

 ● Provides a way for reusable web components to easily work
   together through this specification
 ● Also allows you to easily deploy web application that follow
   this standard(gunicorn, mod_wsgi, uWSGI, etc)
Django

● "Full stack" framework
● it's own tightly integrated built-in ORM
● built-in authentication strategy
● nice, auto-"magic" backend
● one monolithic package
● no interaction really with other communities
● great for CMS-like applications
● URLs are generated from specifying regular expressions
  that map to python functions
Pyramid

● database backend agnostic but has supporting packages for
  sqlalchemy, zodb, mongodb.
● no authentication policy built-in but has supported add-ons
● great authorization policy
● small footprint, fast, well tested and very well documented
● VERY pluggable framework
● URL pattern can use traversal and routes
● "no opinion"
● add-ons can be described as "opinions" for the framework.
● demonstrating "khufu" opinion(SQLAlchemy, Jinja2,
  traversal)
● built using zope technologies with the idea of rewriting all
  the bad of zope
Turbogears and Pylons

● "Full stack" frameworks
● The pylons project has moved to using pyramid as it's
  baseline.
● turbogears and pylons already share a good deal
● soo... Pyramid, Pylons and Turbogears pretty much share a
  lot of the core technologies and just have different opinions
  about what to do with them after that
● Turbogears has the most "opinions"
Bluebream

● entreprisey
● component-driven, interfaces, adapters, etc
● zodb
● works with other database adapters(have sqlalchemy
  support)
● pyramid is built off of a lot of these components
● uses buildout
● where zope is now today
● big stack, lots of dependencies
web2py

● FULL stack
● built-in ORM
● inspired by ruby on rails(so modules and method name map
  to urls)
● admin interface with support of TTW development
● coding by convention
● not very pythonic
● lots of "magic" going on
Flask

● micro framework
● no built-in ORM support
● uses routes
● very simple
● fast development
● not as robust tools
Bottle

● Micro framework
● 1 file for whole thing
● not a very good built-in templating engine
● no built-in ORM
● initial look will seem a lot like flask
Python 3 and the web

...

Some blockers:
 ● Webob
 ● PIL
NOSQL notes(mongodb)

● json-style storage
● for massive "web scale"
● sharding, replication, file storage
● schemaless
● http://www.mongodb.org/
● mongokit - http://pypi.python.org/pypi/mongokit

 > j = { name : "mongo" }; {"name" : "mongo"} > t = { x :
 3 }; { "x" : 3 } > db.things.save(j); > db.things.save(t); >
 db.things.find(); { "_id" : ObjectId
 ("4c2209f9f3924d31102bd84a"), "name" : "mongo" } {
 "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3
 }>
Questions

...

Mais conteúdo relacionado

Mais procurados

Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
Introduction to python programming
Introduction to python programmingIntroduction to python programming
Introduction to python programmingSrinivas Narasegouda
 
Web Applications and Deployment
Web Applications and DeploymentWeb Applications and Deployment
Web Applications and DeploymentBG Java EE Course
 
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And MultithreadingShraddha
 
Python | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialPython | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialQA TrainingHub
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...Edureka!
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introductionRasheed Waraich
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonManishJha237
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and DjangoMichael Pirnat
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Zhe Li
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoJames Casey
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 

Mais procurados (20)

Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Introduction to python programming
Introduction to python programmingIntroduction to python programming
Introduction to python programming
 
Web Applications and Deployment
Web Applications and DeploymentWeb Applications and Deployment
Web Applications and Deployment
 
Basic Python Django
Basic Python DjangoBasic Python Django
Basic Python Django
 
Xpath presentation
Xpath presentationXpath presentation
Xpath presentation
 
An introduction to MongoDB
An introduction to MongoDBAn introduction to MongoDB
An introduction to MongoDB
 
PHP FUNCTIONS
PHP FUNCTIONSPHP FUNCTIONS
PHP FUNCTIONS
 
Java And Multithreading
Java And MultithreadingJava And Multithreading
Java And Multithreading
 
Python | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python TutorialPython | What is Python | History of Python | Python Tutorial
Python | What is Python | History of Python | Python Tutorial
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
 
Angular overview
Angular overviewAngular overview
Angular overview
 
Spring boot introduction
Spring boot introductionSpring boot introduction
Spring boot introduction
 
Go lang
Go langGo lang
Go lang
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python final ppt
Python final pptPython final ppt
Python final ppt
 
Web Development with Python and Django
Web Development with Python and DjangoWeb Development with Python and Django
Web Development with Python and Django
 
Java interfaces
Java interfacesJava interfaces
Java interfaces
 
Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...Introduction to Django REST Framework, an easy way to build REST framework in...
Introduction to Django REST Framework, an easy way to build REST framework in...
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 

Destaque

Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTPMykhailo Kolesnyk
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python MeetupAreski Belaid
 
Building Automated REST APIs with Python
Building Automated REST APIs with PythonBuilding Automated REST APIs with Python
Building Automated REST APIs with PythonJeff Knupp
 
Flask - Python microframework
Flask - Python microframeworkFlask - Python microframework
Flask - Python microframeworkAndré Mayer
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flaskJim Yeh
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsSolution4Future
 
Lenguaje de programación Python.
Lenguaje de programación Python.Lenguaje de programación Python.
Lenguaje de programación Python.Promocatorce
 

Destaque (10)

Python tools for testing web services over HTTP
Python tools for testing web services over HTTPPython tools for testing web services over HTTP
Python tools for testing web services over HTTP
 
Flask vs. Django
Flask vs. DjangoFlask vs. Django
Flask vs. Django
 
Flask Introduction - Python Meetup
Flask Introduction - Python MeetupFlask Introduction - Python Meetup
Flask Introduction - Python Meetup
 
Building Automated REST APIs with Python
Building Automated REST APIs with PythonBuilding Automated REST APIs with Python
Building Automated REST APIs with Python
 
Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Flask - Python microframework
Flask - Python microframeworkFlask - Python microframework
Flask - Python microframework
 
Web develop in flask
Web develop in flaskWeb develop in flask
Web develop in flask
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
Lenguaje de programación Python.
Lenguaje de programación Python.Lenguaje de programación Python.
Lenguaje de programación Python.
 

Semelhante a Python web frameworks

C4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkC4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkFrancis Addai
 
Python in Industry
Python in IndustryPython in Industry
Python in IndustryDharmit Shah
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...sowmyavibhin
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...sowmyavibhin
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Pythonabhishekdf3
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hoodGuido Stevens
 
Asynchronous Frameworks.pptx
Asynchronous Frameworks.pptxAsynchronous Frameworks.pptx
Asynchronous Frameworks.pptxganeshkarthy
 
Top 10 Python Frameworks for App Development
Top 10 Python Frameworks for App DevelopmentTop 10 Python Frameworks for App Development
Top 10 Python Frameworks for App DevelopmentKateWood30
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 
Oracle to Postgres Migration - part 1
Oracle to Postgres Migration - part 1Oracle to Postgres Migration - part 1
Oracle to Postgres Migration - part 1PgTraining
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireSimon J Mudd
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master BuilderPhilip Norton
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoAhmed Salama
 
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor TurskyiJulia Cherniak
 
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptxCTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptxOduniyiAdebola
 

Semelhante a Python web frameworks (20)

C4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web FrameworkC4ainaction-Introduction to the Pyramid Web Framework
C4ainaction-Introduction to the Pyramid Web Framework
 
Introduction to django
Introduction to djangoIntroduction to django
Introduction to django
 
Python in Industry
Python in IndustryPython in Industry
Python in Industry
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...
 
Django course
Django courseDjango course
Django course
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Python
 
Plone Intranet under the hood
Plone Intranet under the hoodPlone Intranet under the hood
Plone Intranet under the hood
 
Tori ORM for PyCon 2014
Tori ORM for PyCon 2014Tori ORM for PyCon 2014
Tori ORM for PyCon 2014
 
Python & Django
Python & DjangoPython & Django
Python & Django
 
Asynchronous Frameworks.pptx
Asynchronous Frameworks.pptxAsynchronous Frameworks.pptx
Asynchronous Frameworks.pptx
 
Top 10 Python Frameworks for App Development
Top 10 Python Frameworks for App DevelopmentTop 10 Python Frameworks for App Development
Top 10 Python Frameworks for App Development
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Oracle to Postgres Migration - part 1
Oracle to Postgres Migration - part 1Oracle to Postgres Migration - part 1
Oracle to Postgres Migration - part 1
 
MySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the WireMySQL X protocol - Talking to MySQL Directly over the Wire
MySQL X protocol - Talking to MySQL Directly over the Wire
 
Becoming A Drupal Master Builder
Becoming A Drupal Master BuilderBecoming A Drupal Master Builder
Becoming A Drupal Master Builder
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi"The working architecture of NodeJs applications" Viktor Turskyi
"The working architecture of NodeJs applications" Viktor Turskyi
 
Polymer 101
Polymer 101Polymer 101
Polymer 101
 
CTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptxCTE 323 - Lecture 1.pptx
CTE 323 - Lecture 1.pptx
 

Mais de NEWLUG

Lyx : A Book Writer's Dream - NEWLUG
Lyx : A Book Writer's Dream - NEWLUGLyx : A Book Writer's Dream - NEWLUG
Lyx : A Book Writer's Dream - NEWLUGNEWLUG
 
Linux games
Linux gamesLinux games
Linux gamesNEWLUG
 
Quickly programming
Quickly programmingQuickly programming
Quickly programmingNEWLUG
 
Ajax presentation
Ajax presentationAjax presentation
Ajax presentationNEWLUG
 
Making more informed Linux hardware Choices - Phoronix
Making more informed Linux hardware Choices - PhoronixMaking more informed Linux hardware Choices - Phoronix
Making more informed Linux hardware Choices - PhoronixNEWLUG
 
Mac OSX - Presentation for NEWLUG - Nov. 2010
Mac OSX - Presentation for NEWLUG - Nov. 2010Mac OSX - Presentation for NEWLUG - Nov. 2010
Mac OSX - Presentation for NEWLUG - Nov. 2010NEWLUG
 
Python 3 Intro Presentation for NEWLUG
Python 3 Intro Presentation for NEWLUGPython 3 Intro Presentation for NEWLUG
Python 3 Intro Presentation for NEWLUGNEWLUG
 
NEWLUG May 2010 Presentation - Android
NEWLUG May 2010 Presentation - AndroidNEWLUG May 2010 Presentation - Android
NEWLUG May 2010 Presentation - AndroidNEWLUG
 
Newlug presentation- OpenSolaris
Newlug presentation- OpenSolarisNewlug presentation- OpenSolaris
Newlug presentation- OpenSolarisNEWLUG
 

Mais de NEWLUG (10)

Lyx : A Book Writer's Dream - NEWLUG
Lyx : A Book Writer's Dream - NEWLUGLyx : A Book Writer's Dream - NEWLUG
Lyx : A Book Writer's Dream - NEWLUG
 
Linux games
Linux gamesLinux games
Linux games
 
Quickly programming
Quickly programmingQuickly programming
Quickly programming
 
Ajax presentation
Ajax presentationAjax presentation
Ajax presentation
 
Plone
PlonePlone
Plone
 
Making more informed Linux hardware Choices - Phoronix
Making more informed Linux hardware Choices - PhoronixMaking more informed Linux hardware Choices - Phoronix
Making more informed Linux hardware Choices - Phoronix
 
Mac OSX - Presentation for NEWLUG - Nov. 2010
Mac OSX - Presentation for NEWLUG - Nov. 2010Mac OSX - Presentation for NEWLUG - Nov. 2010
Mac OSX - Presentation for NEWLUG - Nov. 2010
 
Python 3 Intro Presentation for NEWLUG
Python 3 Intro Presentation for NEWLUGPython 3 Intro Presentation for NEWLUG
Python 3 Intro Presentation for NEWLUG
 
NEWLUG May 2010 Presentation - Android
NEWLUG May 2010 Presentation - AndroidNEWLUG May 2010 Presentation - Android
NEWLUG May 2010 Presentation - Android
 
Newlug presentation- OpenSolaris
Newlug presentation- OpenSolarisNewlug presentation- OpenSolaris
Newlug presentation- OpenSolaris
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Python web frameworks

  • 1. Python Web Technologies An overview of the various Python web technologies
  • 2. What I'll Go Over ● Frameworks ● Micro Frameworks ● Templating languages ● The state of Python 3 and the web ● NOSQL
  • 3. Frameworks Covered ● Django ● Pyramid ● A brief mention of Pylons and Turbogears ● Bluebream ● web2py ● Flask(micro-framework) ● Bottle
  • 4. A note about WSGI "WSGI is the Web Server Gateway Interface. It is a specification for web servers and application servers to communicate with web applications (though it can also be used for more than that). It is a Python standard, described in detail in PEP 333." ● Provides a way for reusable web components to easily work together through this specification ● Also allows you to easily deploy web application that follow this standard(gunicorn, mod_wsgi, uWSGI, etc)
  • 5. Django ● "Full stack" framework ● it's own tightly integrated built-in ORM ● built-in authentication strategy ● nice, auto-"magic" backend ● one monolithic package ● no interaction really with other communities ● great for CMS-like applications ● URLs are generated from specifying regular expressions that map to python functions
  • 6. Pyramid ● database backend agnostic but has supporting packages for sqlalchemy, zodb, mongodb. ● no authentication policy built-in but has supported add-ons ● great authorization policy ● small footprint, fast, well tested and very well documented ● VERY pluggable framework ● URL pattern can use traversal and routes ● "no opinion" ● add-ons can be described as "opinions" for the framework. ● demonstrating "khufu" opinion(SQLAlchemy, Jinja2, traversal) ● built using zope technologies with the idea of rewriting all the bad of zope
  • 7. Turbogears and Pylons ● "Full stack" frameworks ● The pylons project has moved to using pyramid as it's baseline. ● turbogears and pylons already share a good deal ● soo... Pyramid, Pylons and Turbogears pretty much share a lot of the core technologies and just have different opinions about what to do with them after that ● Turbogears has the most "opinions"
  • 8. Bluebream ● entreprisey ● component-driven, interfaces, adapters, etc ● zodb ● works with other database adapters(have sqlalchemy support) ● pyramid is built off of a lot of these components ● uses buildout ● where zope is now today ● big stack, lots of dependencies
  • 9. web2py ● FULL stack ● built-in ORM ● inspired by ruby on rails(so modules and method name map to urls) ● admin interface with support of TTW development ● coding by convention ● not very pythonic ● lots of "magic" going on
  • 10. Flask ● micro framework ● no built-in ORM support ● uses routes ● very simple ● fast development ● not as robust tools
  • 11. Bottle ● Micro framework ● 1 file for whole thing ● not a very good built-in templating engine ● no built-in ORM ● initial look will seem a lot like flask
  • 12. Python 3 and the web ... Some blockers: ● Webob ● PIL
  • 13. NOSQL notes(mongodb) ● json-style storage ● for massive "web scale" ● sharding, replication, file storage ● schemaless ● http://www.mongodb.org/ ● mongokit - http://pypi.python.org/pypi/mongokit > j = { name : "mongo" }; {"name" : "mongo"} > t = { x : 3 }; { "x" : 3 } > db.things.save(j); > db.things.save(t); > db.things.find(); { "_id" : ObjectId ("4c2209f9f3924d31102bd84a"), "name" : "mongo" } { "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }>