Python 3 Web Development Beginner's Guide Table of Contents


Table of Contents

Preface
Chapter 1: Choosing Your Tools
Chapter 2: Creating a Simple Spreadsheet
Chapter 3: Tasklist I: Persistence
Chapter 4: Tasklist II: Databases and AJAX
Chapter 5: Entities and Relations
Chapter 6: Building a Wiki
Chapter 7: Refactoring Code for Reuse
Chapter 8: Managing Customer Relations
Chapter 9: Creating Full-Fledged Webapps: Implementing Instances
Chapter 10: Customizing the CRM Application
Appendix A: References to Resources
Appendix B: Pop Quiz Answers
Index

  • Chapter 1: Choosing Your Tools
    • Identifying the components of a web application
    • Time for action – getting an overview of a web application
    • Choosing suitable tools
    • Time for action – choosing a delivery framework, also known as web server
    • Time for action – choosing a server-side scripting language
    • Time for action – choosing a database engine
    • Time for action – deciding on object relational mappers
    • Time for action – choosing a presentation framework
    • Designing for maintainability and usability
      • Testing
    • Time for action – choosing a test framework
      • Version management
      • Usability
        • Good looking – adhering to common GUI paradigms
        • Themable
        • Cross-browser compatible
        • Cross-platform compatible
      • Maintainability
        • Standards compliant
      • Security
        • Reliable
        • Robust
        • Access control and authentication
        • Confidentiality
        • Integrity
        • A final word on security
      • Help, I am confused!
    • Time for action – maintaining overview
    • Summary
    • Chapter 2: Creating a Simple Spreadsheet
      • Python 3
      • Time for action – installing Python 3 CherryPy
      • Time for action – installing CherryPy
      • Installing jQuery and jQuery UI
      • Serving an application
      • Time for action – serving a dummy application
      • Time for action – serving HTML as dynamic content
        • Who serves what: an overview
        • HTML: separating form and content
      • Time for action – a unit convertor
        • HTML: form-based interaction
        • JavaScript: using jQuery UI widgets
      • Time for action – conversion using unitconverter.js
        • jQuery selectors
        • CSS: applying a jQuery UI theme to other elements
      • Time for action – converting a unit convertor into a plugin
        • JavaScript: creating a jQuery UI plugin
      • Designing a spreadsheet application
      • Time for action – serving a spreadsheet application
        • HTML: keeping it simple
        • JavaScript: creating a spreadsheet plugin
      • The missing parts
      • Summary
      • Chapter 3: Tasklist I: Persistence
        • Designing a tasklist application
        • Time for action – creating a logon screen
          • Serving a logon screen
          • Setting up a session
          • Expiring a session
          • Designing a task list
        • Time for action – running tasklist.py
        • Python: the task module
        • Time for action – implementing the task module
          • Adding new tasks
          • Deleting a task
        • JavaScript: tasklist.js
        • Time for action – styling the buttons
        • JavaScript: tooltip.js
        • Time for action – implementing inline labels
          • CSS: tasklist.css
        • Summary
        • Chapter 4: Tasklist II: Databases and AJAX
          • The advantages of a database compared to a filesystem
          • Choosing a database engine
          • Database-driven authentication
          • Time for action – authentication using a database
            • Tasklist II – storing tasks in a database
              • Improving interactivity with AJAX
          • Time for action – getting the time with AJAX
            • Redesigning the Tasklist application
            • Database design
          • Time for action – creating the task database
          • Time for action – retrieving information with select statements
            • TaskDB – interfacing with the database
          • Time for action – connecting to the database
          • Time for action – storing and retrieving information
          • Time for action – updating and deleting information
            • Testing
          • Time for action – testing factorial.py
            • Now what have we gained?
          • Time for action – writing unit tests for tasklistdb.py
            • Designing for AJAX
              • Click handlers
            • The application
          • Time for action – putting it all together
          • Have a go hero – refreshing the itemlist on a regular basis
          • Summary
          • Chapter 5: Entities and Relations
            • Designing a book database
              • The Entity class
            • Time for action – using the Entity class
            • Time for action – creating instances
              • The Relation class
            • Time for action – using the Relation class
              • Relation instances
            • Time for action – defining the Books database
              • The delivery layer
            • Time for action – designing the delivery layer
            • Time for action – adding a new book
              • Auto completion
            • Time for action – using input fields with auto completion
              • The presentation layer
            • Time for action – using an enhanced presentation layer
            • Summary
            • Chapter 6: Building a Wiki
              • The data layer
              • Time for action – designing the wiki data model
              • The delivery layer
              • Time for action – implementing the opening screen
                • The structural components
                • The application methods
              • Time for action – implementing a wiki topic screen
              • Time for action – editing wiki topics
              • Additional functionality
              • Time for action – selecting an image
              • Time for action – implementing a tag cloud
              • Time for action – searching for words
              • The importance of input validation
              • Time for action – scrubbing your content
              • Time for action – rendering content
              • Summary
              • Chapter 7: Refactoring Code for Reuse
                • Time for action – taking a critical look
                • Refactoring
                • Time for action – defining new entities: how it should look
                  • Metaclasses
                • Time for action – using metaclasses
                  • MetaEntity and AbstractEntity classes
                • Time for action – implementing the MetaEntity and AbstractEntity classes
                  • Relations
                • Time for action – defining new relations: how it should look
                  • Implementing the MetaRelation and AbstractRelation classes
                    • Adding new methods to existing classes
                  • Browsing lists of entities
                • Time for action – using a table-based Entity browser
                • Time for action – examining the HTML markup
                  • Caching
                • The books application revisited
                • Time for action – creating a books application, take two
                • Summary
                • Chapter 8: Managing Customer Relations
                  • A critical review
                  • Designing a Customer Relationship Management application
                  • Time for action – implementing a basic CRM
                  • Adding and editing values
                  • Time for action – adding an instance
                  • Time for action – editing an instance
                  • Adding relations
                  • Picklists
                  • Time for action – implementing picklists
                  • Summary
                  • Chapter 9: Creating Full-Fledged Webapps: Implementing Instances
                    • Even more relations
                    • Time for action – showing one-to-many relationships
                    • Time for action – adapting MetaRelation
                    • Time for action – enhancing Display
                    • Time for action – enhancing Browse
                    • Access control
                    • Time for action – implementing access control
                    • Role-based access control
                    • Time for action – implementing role-based access control
                    • Summary
                    • Chapter 10: Customizing the CRM Application
                      • Time for action – sorting
                      • Time for action – filtering
                      • Customization
                      • Time for action – customizing entity displays
                      • Time for action – customizing entity lists
                      • Time for action – adding a delete button
                      • Summary
                        • Appendix B: Pop Quiz Answers
                          • Chapter 2, Creating a Simple Spreadsheet
                          • Chapter 3, Tasklist I: Persistence
                          • Chapter 4, Tasklist II: Databases and AJAX
                          • Chapter 5, Entities and Relations
                          • Chapter 6, Building a Wiki

                          Awards Voting Nominations Previous Winners
                          Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                          Resources
                          Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
                          Sort A-Z