Build Python CMS The Plone Way
Upcoming SlideShare
Loading in...5

Build Python CMS The Plone Way



A short talk at Taipei Python User Group gathering on 2012/11/29.

A short talk at Taipei Python User Group gathering on 2012/11/29.



Total Views
Views on SlideShare
Embed Views



5 Embeds 322 298 19 3 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Build Python CMS The Plone Way Build Python CMS The Plone Way Presentation Transcript

  • Build Python CMS The Plone Way 胡崇偉 marr @
  • Common Ways to Have Your Sites 1. Building Them with Frameworks 2. Building Them with CMSesYou are here Your Website here
  • Please Guide Me …
  • Plone = Python based CMS CMS = Contents in Database Added/Edited by User/Group Managed via Workflow Searchable with Index/Catalog or simply… Forms in Database
  • Installation Options 1. Unified Installer 2. /usr/bin/python 3. VirtualEnv
  • Quality Assurance
  • Solid Core• Proven Migration Path• Good approximation of Security Track Records of All Stack Components
  • Undo, Transaction, Versioning How Plone Database Interacts with ApplicationsPython’s dynamic nature allowsdevelopers to quickly develop applications,avoiding the compile cycle and statictyping declarations required by otherlanguages. The ZODB offers a similarbenefit: developers who use the ZODB canstore their objects transparently withoutany cumbersome mapping of objets torelational database tables.
  • Welcome to Plone College • Announcement • About Us • People
  • Default Content Types Page Folder Item News Collection Event• Announcement Image• About Us File Link• People
  • Editinga Page• Title• Summary• Body Text
  • Sharing Setting•Can Add•Can Edit•Can Review•Can View
  • One Folder Different Display
  • News Item Listing #1
  • News Item Listing #2
  • Content Rule
  • More ThanOut-Of-The-Box Functionalities Needed? With a Little Help from My Friends
  • Python Building BlocksPython Packages are distributed as Eggs Python Package Index Example: easy_install docutils pip docutils
  • How Plone Add-ons Workzc.buildout helps to install addons
  • Extend Plone with Add-onsPlone Addon (Product) =~ Python Package (Egg)
  • Forms are Common in CMS Form = Content Type
  • Form = CMS CoreContent Type = Schema = Fields + Widgets
  • ArcheTypes Content FrameworkATNewsItemSchema = ATCTSchema.copy() + Schema(( TextField(text‘, required = False, widget = RichWidget(label=‘Body Text’) ), ImageField(‘image‘, required = False, widget = ImageWidget(label=‘Lead Image’) ),
  • From Archetypes To DexterityImproved Content Type Building Framework
  • Fields and Widgets
  • Dexterity BehaviorsReusable components that can be enabled on a per-type basis through enumeration in the FTI.
  • Dexterity Behaviors Example Reusable components that can be enabled on a per-type basis through enumeration in the FTI.
  • Deco is Coming
  • Diazo : Theming Engine
  • Diazo Concept
  • Diazo In Action
  • Plone API 1. Portal 3. Users 2. Content 4. Groupsfrom plone import apiportal = api.portal.get()catalog = api.portal.get_tool(name="portal_catalog")user = api.user.create(
  • SQL Integration1. Database Adapter + Z SQL Method • mysqldbda / psycopg2. ORM (SQLAlchemy) • ContentMirror3. Pickle • RelStorage
  • Considerations1. Product vs Framework2. ZODB: a Double-edged Knife3. Positioned as Enterprise Grade4. Resource Availability5. Integration Issues
  • Try It – website using the Plone Create a CMS in less than 10 seconds. Free with basic features or pay to get more features and storage.
  • Thank You