SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
Plone is great,
Python is too!
 Carlos de la Guardia
You just chose Plone as a CMS



Congratulations. You might not realize it yet, but
 in addition to picking a great CMS, you have
 implicitly selected a programming language:

                    Python.
Make it an explicit choice

   Unless you plan to only use Plone's out of the box
    functionality and third party products, you will need
    Python at some point.
   It's better to dive in and get to know the language,
    because Plone can be used to create fantastic content
    based applications that extend the platform, but you
    need Python for that.
   You can of course depend on one of the many Plone
    companies around (we thank you for your business),
    but if you are the kind of organization that has its own
    developers, it easy to introduce them to Python.
About Python
”The Python paradox: if a company chooses to write its software in
a comparatively esoteric language, they'll be able to hire better
programmers, because they'll attract only those who cared enough
to learn it.”
                                                     Paul Graham
   Python is powerful... and fast
   Python plays well with others
   Python runs everywhere
   Python is friendly... and easy to learn
   Python is Open
   Python developers care about Python
Python the language

   very clear, readable syntax
   strong introspection capabilities
   intuitive object orientation
   natural expression of procedural code
   full modularity, supporting hierarchical packages
   exception-based error handling
   very high level dynamic data types
   extensive standard libraries and third party modules for virtually every task
   extensions and modules easily written in C, C++ (or Java for Jython, or .NET
    languages for IronPython)
   embeddable within applications as a scripting interface
Python the community

   Global, diverse community
   Regional conferences all over the world
   The Python Foundation oversees the
    advancement of the language and supports
    community groups and efforts
   The community is friendly and open
   Many Plone developers are very involved with
    the language
Python package index

   Repository of software for the Python
    programming language
   17,489 packages and counting
   Packages can be installed from the command
    line directly from this repository
   Plone uses it to get third party products (and
    Plone's components as well)
The Zen of Python
cguardia@hal9001:~/work/eye$ python
Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
With Python you can extend Plone

   You can create new content types
   You can create portlets
   You can define special views for your content
   You can personalize existing views
   You can manipulate your site's content
    programatically
   Basically, you can make Plone do your bidding
   But...
You'll also know when NOT to use Plone

   As we saw, Python offers tons of packages
    and tools in many different areas
   Python is specially strong in web development
   Plone is a great CMS, but it's not meant to be
    used for all your website needs
   Trust me, you don't want to meet FrankenPlone
Warning signs

   If you are thinking ”we need something like
    Plone, but without this and this and this...”
   Or ”we could use Plone, except we'll have to
    add this and this and this”
   Resist the temptation. Here's a rule of thumb: if
    yours is not a content application or if Plone's
    functionality would get in the way of what you
    want to do, you might be better of with
    something else.
Combining Plone with other Python tools

   Need reporting? Plone is not well suited for many
    writes to the database. But with Python and
    SQLAlchemy you can create a reporting app and
    make Plone push data there.
   Need to share data? You can have Plone return JSON
    data and another Python app can use it.
   Plone can also easily get data from other applications
    in a variety of formats. With Python, many times this
    means a library import and a few lines of code.
   Need to analyze your Plone database? Why not write
    a pure Python app that connects to a copy of your
    ZODB directly?
Python for Web Development

   Sometimes Plone may not be the right tool for
    the job. Need a financial system, an accounting
    package or a web store?
   There are many Python frameworks that can
    help you create web applications.
   Pyramid (personal favorite), Flask, Django are
    all great choices.
   Using Python for all gives you advantages like
    having common library code specific for your
    organization and allowing team members to
    work on the different web applications
In Conclusion

   Python is a great language, give it a chance
   Consider using it for more than your Plone site
   Know when to extend Plone and when to go
    with somethimng else.
   Statistics show that you'll have happier
    developers
   Some developers end up not working with
    Plone when they change jobs to somewhere
    where it's not used. They never leave Python,
    though.

Más contenido relacionado

La actualidad más candente

Python for Matlab Programmers
Python for Matlab ProgrammersPython for Matlab Programmers
Python for Matlab ProgrammersMichael Patterson
 
Python intro
Python introPython intro
Python introrik0
 
Python for MATLAB Programmers
Python for MATLAB ProgrammersPython for MATLAB Programmers
Python for MATLAB ProgrammersMichael Patterson
 
Python Training in Pune
Python Training in PunePython Training in Pune
Python Training in PuneClassboat.com
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonRanjith kumar
 
Chapter 8 getting started with python
Chapter 8 getting started with pythonChapter 8 getting started with python
Chapter 8 getting started with pythonPraveen M Jigajinni
 
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...Edureka!
 
Python and its Applications
Python and its ApplicationsPython and its Applications
Python and its ApplicationsAbhijeet Singh
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonAgung Wahyudi
 
IHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTMINSTITUTE
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python introfantasy zheng
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersBoey Pak Cheong
 
Python tutorial
Python tutorialPython tutorial
Python tutorialGuru99
 
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaPython Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaEdureka!
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020Devathon
 

La actualidad más candente (17)

Python for Matlab Programmers
Python for Matlab ProgrammersPython for Matlab Programmers
Python for Matlab Programmers
 
Python intro
Python introPython intro
Python intro
 
Python for MATLAB Programmers
Python for MATLAB ProgrammersPython for MATLAB Programmers
Python for MATLAB Programmers
 
Python Training in Pune
Python Training in PunePython Training in Pune
Python Training in Pune
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
Chapter 8 getting started with python
Chapter 8 getting started with pythonChapter 8 getting started with python
Chapter 8 getting started with python
 
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
5 Simple Steps To Install Python On Windows | Install Python 3.7 | Python Tra...
 
Python and its Applications
Python and its ApplicationsPython and its Applications
Python and its Applications
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
IHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to PythonIHTM Python PCEP Introduction to Python
IHTM Python PCEP Introduction to Python
 
What is python
What is pythonWhat is python
What is python
 
开源沙龙第一期 Python intro
开源沙龙第一期 Python intro开源沙龙第一期 Python intro
开源沙龙第一期 Python intro
 
Python, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for EngineersPython, the Language of Science and Engineering for Engineers
Python, the Language of Science and Engineering for Engineers
 
Python tutorial
Python tutorialPython tutorial
Python tutorial
 
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | EdurekaPython Course | Python Programming | Python Tutorial | Python Training | Edureka
Python Course | Python Programming | Python Tutorial | Python Training | Edureka
 
Julia vs Python 2020
Julia vs Python 2020Julia vs Python 2020
Julia vs Python 2020
 

Similar a Python intro for Plone users

python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalliMUDDUKRISHNA14
 
Mastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMalcolmDupri
 
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxPython Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxManohar k
 
All you need to know about Python | BJIT
All you need to know about Python | BJITAll you need to know about Python | BJIT
All you need to know about Python | BJITBJIT Ltd
 
Best Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxBest Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxAPTRON Gurgaon
 
Get Started With Python Language.pdf
Get Started With Python Language.pdfGet Started With Python Language.pdf
Get Started With Python Language.pdfCerebrum Infotech
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfBoTree Technologies
 
Python Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingPython Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingUncodemy
 
Contact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxContact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxAbhinavSharma309481
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications SnehaDas60
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Cerebrum Infotech
 

Similar a Python intro for Plone users (20)

python-handbook.pdf
python-handbook.pdfpython-handbook.pdf
python-handbook.pdf
 
Pyconza(2)
Pyconza(2)Pyconza(2)
Pyconza(2)
 
Research paper on python by Rj
Research paper on python by RjResearch paper on python by Rj
Research paper on python by Rj
 
python Certification Training in marthahalli
python Certification Training in marthahallipython Certification Training in marthahalli
python Certification Training in marthahalli
 
Why Hire Python Developers?
Why Hire Python Developers?Why Hire Python Developers?
Why Hire Python Developers?
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
Mastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions DemystifiedMastering the Interview: 50 Common Interview Questions Demystified
Mastering the Interview: 50 Common Interview Questions Demystified
 
Python Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docxPython Programming and ApplicationsUnit-1.docx
Python Programming and ApplicationsUnit-1.docx
 
Learn Python in Pragmatic Way
Learn Python in Pragmatic WayLearn Python in Pragmatic Way
Learn Python in Pragmatic Way
 
Python
PythonPython
Python
 
All you need to know about Python | BJIT
All you need to know about Python | BJITAll you need to know about Python | BJIT
All you need to know about Python | BJIT
 
Best Python Institute in Noida. pptx
Best Python Institute in Noida.      pptxBest Python Institute in Noida.      pptx
Best Python Institute in Noida. pptx
 
Best Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptxBest Python Training Institute In Gurgaon 2022.pptx
Best Python Training Institute In Gurgaon 2022.pptx
 
Get Started With Python Language.pdf
Get Started With Python Language.pdfGet Started With Python Language.pdf
Get Started With Python Language.pdf
 
Python App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdfPython App Development_ 7 Things to Keep in Mind.pdf
Python App Development_ 7 Things to Keep in Mind.pdf
 
Python content
Python contentPython content
Python content
 
Python Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level ProgrammingPython Prodigy: Unraveling the Secrets of High-Level Programming
Python Prodigy: Unraveling the Secrets of High-Level Programming
 
Contact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docxContact Book Project in Python for Beginners.docx
Contact Book Project in Python for Beginners.docx
 
9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications 9 good reasons why you must consider python for web applications
9 good reasons why you must consider python for web applications
 
Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...Build Real-World Mobile Applications With Python App Development Services Com...
Build Real-World Mobile Applications With Python App Development Services Com...
 

Más de Carlos de la Guardia

Más de Carlos de la Guardia (10)

Introduction to the transaction package
Introduction to the transaction packageIntroduction to the transaction package
Introduction to the transaction package
 
Pyramid as a base for higher level frameworks
Pyramid as a base for higher level frameworksPyramid as a base for higher level frameworks
Pyramid as a base for higher level frameworks
 
Pyramid patterns
Pyramid patternsPyramid patterns
Pyramid patterns
 
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial
 
Pyramid faq
Pyramid faqPyramid faq
Pyramid faq
 
ZODB Tips and Tricks
ZODB Tips and TricksZODB Tips and Tricks
ZODB Tips and Tricks
 
Pyramid deployment
Pyramid deploymentPyramid deployment
Pyramid deployment
 
A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...A winning combination: Plone as CMS and your favorite Python web framework as...
A winning combination: Plone as CMS and your favorite Python web framework as...
 
World Plone Day 2008 Mexico
World Plone Day 2008 MexicoWorld Plone Day 2008 Mexico
World Plone Day 2008 Mexico
 
Turning Plone into a dynamic site factory
Turning Plone into a dynamic site factoryTurning Plone into a dynamic site factory
Turning Plone into a dynamic site factory
 

Último

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
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Último (20)

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
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Python intro for Plone users

  • 1. Plone is great, Python is too! Carlos de la Guardia
  • 2. You just chose Plone as a CMS Congratulations. You might not realize it yet, but in addition to picking a great CMS, you have implicitly selected a programming language: Python.
  • 3. Make it an explicit choice  Unless you plan to only use Plone's out of the box functionality and third party products, you will need Python at some point.  It's better to dive in and get to know the language, because Plone can be used to create fantastic content based applications that extend the platform, but you need Python for that.  You can of course depend on one of the many Plone companies around (we thank you for your business), but if you are the kind of organization that has its own developers, it easy to introduce them to Python.
  • 4. About Python ”The Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it.” Paul Graham  Python is powerful... and fast  Python plays well with others  Python runs everywhere  Python is friendly... and easy to learn  Python is Open  Python developers care about Python
  • 5. Python the language  very clear, readable syntax  strong introspection capabilities  intuitive object orientation  natural expression of procedural code  full modularity, supporting hierarchical packages  exception-based error handling  very high level dynamic data types  extensive standard libraries and third party modules for virtually every task  extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)  embeddable within applications as a scripting interface
  • 6. Python the community  Global, diverse community  Regional conferences all over the world  The Python Foundation oversees the advancement of the language and supports community groups and efforts  The community is friendly and open  Many Plone developers are very involved with the language
  • 7. Python package index  Repository of software for the Python programming language  17,489 packages and counting  Packages can be installed from the command line directly from this repository  Plone uses it to get third party products (and Plone's components as well)
  • 8. The Zen of Python cguardia@hal9001:~/work/eye$ python Python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 9. With Python you can extend Plone  You can create new content types  You can create portlets  You can define special views for your content  You can personalize existing views  You can manipulate your site's content programatically  Basically, you can make Plone do your bidding  But...
  • 10. You'll also know when NOT to use Plone  As we saw, Python offers tons of packages and tools in many different areas  Python is specially strong in web development  Plone is a great CMS, but it's not meant to be used for all your website needs  Trust me, you don't want to meet FrankenPlone
  • 11. Warning signs  If you are thinking ”we need something like Plone, but without this and this and this...”  Or ”we could use Plone, except we'll have to add this and this and this”  Resist the temptation. Here's a rule of thumb: if yours is not a content application or if Plone's functionality would get in the way of what you want to do, you might be better of with something else.
  • 12. Combining Plone with other Python tools  Need reporting? Plone is not well suited for many writes to the database. But with Python and SQLAlchemy you can create a reporting app and make Plone push data there.  Need to share data? You can have Plone return JSON data and another Python app can use it.  Plone can also easily get data from other applications in a variety of formats. With Python, many times this means a library import and a few lines of code.  Need to analyze your Plone database? Why not write a pure Python app that connects to a copy of your ZODB directly?
  • 13. Python for Web Development  Sometimes Plone may not be the right tool for the job. Need a financial system, an accounting package or a web store?  There are many Python frameworks that can help you create web applications.  Pyramid (personal favorite), Flask, Django are all great choices.  Using Python for all gives you advantages like having common library code specific for your organization and allowing team members to work on the different web applications
  • 14. In Conclusion  Python is a great language, give it a chance  Consider using it for more than your Plone site  Know when to extend Plone and when to go with somethimng else.  Statistics show that you'll have happier developers  Some developers end up not working with Plone when they change jobs to somewhere where it's not used. They never leave Python, though.