Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Python 3 Web Development
Python 3 Web Development
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Time for action heading
What just happened?
Pop quiz heading
Have a go hero heading
Reader feedback
Customer support
Downloading the example code for this book
Errata
Piracy
Questions
1. Choosing Your Tools
Identifying the components of a web application
Time for action getting an overview of a web application
What just happened?
Choosing suitable tools
Time for action choosing a delivery framework, also known as web server
What just happened?
Time for action choosing a server-side scripting language
What just happened?
Time for action choosing a database engine
What just happened?
Time for action deciding on object relational mappers
Time for action choosing a presentation framework
What just happened?
Designing for maintainability and usability
Testing
Time for action choosing a test framework
What just happened?
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
What just happened?
Summary
2. Creating a Simple Spreadsheet
Python 3
Time for action installing Python 3
What just happened?
CherryPy
Time for action installing CherryPy
What just happened?
Installing jQuery and jQuery UI
Serving an application
Time for action serving a dummy application
What just happened?
Time for action serving HTML as dynamic content
What just happened?
Who serves what: an overview
Pop quiz serving content with CherryPy
HTML: separating form and content
Time for action a unit convertor
What just happened?
HTML: form-based interaction
JavaScript: using jQuery UI widgets
Time for action conversion using unitconverter.js
What just happened?
Pop quiz adding an icon to a button
Have a go hero adding a dynamic title
jQuery selectors
CSS: applying a jQuery UI theme to other elements
Have a go hero adding zebra stripes to a table
Time for action converting a unit convertor into a plugin
What just happened?
Pop quiz adding conversions to a unitconverter instance
JavaScript: creating a jQuery UI plugin
Pop quiz changing option defaults
Designing a spreadsheet application
Time for action serving a spreadsheet application
What just happened?
HTML: keeping it simple
JavaScript: creating a spreadsheet plugin
Have a go hero adding math functions
The missing parts
Summary
3. Tasklist I: Persistence
Designing a tasklist application
Time for action creating a logon screen
What just happened?
Pop quiz session IDs
Serving a logon screen
Setting up a session
Expiring a session
Have a go hero adding a logon screen to the spreadsheet application
Designing a task list
Time for action running tasklist.py
What just happened?
Python: the task module
Time for action implementing the task module
What just happened?
Adding new tasks
Deleting a task
JavaScript: tasklist.js
Time for action styling the buttons
What just happened?
JavaScript: tooltip.js
Time for action implementing inline labels
What just happened?
CSS: tasklist.css
Pop quiz styling screen elements
Have a go hero changing the date format of a datepicker
Have a go hero serving a task list from a different URL
Summary
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
What just happened?
Have a go hero adding new username/passwords
Tasklist II storing tasks in a database
Improving interactivity with AJAX
Time for action getting the time with AJAX
What just happened?
Redesigning the Tasklist application
Database design
Time for action creating the task database
What just happened?
Time for action retrieving information with select statements
What just happened?
Pop quiz using variable selection criteria
TaskDB interfacing with the database
Time for action connecting to the database
What just happened?
Time for action storing and retrieving information
What just happened?
Time for action updating and deleting information
Testing
Time for action testing factorial.py
What just happened?
Now what have we gained?
Pop quiz spotting the error
Time for action writing unit tests for tasklistdb.py
What just happened?
Designing for AJAX
Click handlers
The application
Time for action putting it all together
What just happened?
Have a go hero refreshing the itemlist on a regular basis
Summary
5. Entities and Relations
Designing a book database
The Entity class
Time for action using the Entity class
What just happened?
Have a go hero checking your input
Time for action creating instances
What just happened?
The Relation class
Time for action using the Relation class
What just happened?
Pop quiz how to check a class
Relation instances
Time for action defining the Books database
What just happened?
Pop quiz how to select a limited number of books
Have a go hero cleaning up the books database
The delivery layer
Time for action designing the delivery layer
What just happened?
Time for action adding a new book
What just happened?
Auto completion
Time for action using input fields with auto completion
What just happened?
The presentation layer
Time for action using an enhanced presentation layer
What just happened?
Summary
6. Building a Wiki
The data layer
Time for action designing the wiki data model
What just happened?
The delivery layer
Time for action implementing the opening screen
What just happened?
The structural components
The application methods
Time for action implementing a wiki topic screen
What just happened?
Time for action editing wiki topics
What just happened?
Pop quiz
Additional functionality
Time for action selecting an image
What just happened ?
Time for action implementing a tag cloud
What just happened?
Time for action searching for words
What just happened?
The importance of input validation
Time for action scrubbing your content
What just happened?
Time for action rendering content
What just happened?
Summary
7. Refactoring Code for Reuse
Time for action taking a critical look
What just happened?
Refactoring
Time for action defining new entities: how it should look
What just happened?
Metaclasses
Time for action using metaclasses
What just happened?
MetaEntity and AbstractEntity classes
Time for action implementing the MetaEntity and AbstractEntity classes
What just happened
Have a go hero retrieving instances in a single step
Relations
Time for action defining new relations: how it should look
What just happened?
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
What just happened?
Time for action examining the HTML markup
What just happened?
Caching
The books application revisited
Time for action creating a books application, take two
What just happened?
Summary
8. Managing Customer Relations
A critical review
Designing a Customer Relationship Management application
Time for action implementing a basic CRM
What just happened?
Adding and editing values
Time for action adding an instance
What just happened?
Time for action editing an instance
What just happened?
Adding relations
Picklists
Time for action implementing picklists
What just happened?
Summary
9. Creating Full-Fledged Webapps: Implementing Instances
Even more relations
Time for action showing one-to-many relationships
What just happened?
Time for action adapting MetaRelation
What just happened?
Time for action enhancing Display
What just happened?
Time for action enhancing Browse
What just happened?
Access control
Time for action implementing access control
What just happened?
Role-based access control
Time for action implementing role-based access control
What just happened?
Summary
10. Customizing the CRM Application
Time for action sorting
What just happened?
Time for action filtering
What just happened?
Customization
Time for action customizing entity displays
What just happened?
Time for action customizing entity lists
What just happened?
Time for action adding a delete button
What just happened?
Summary
A. References to Resources
Good old offline reference books
Additional websites, wikis, and blogs
Tools and frameworks
Newsfeeds
B. Pop Quiz Answers
Chapter 2, Creating a Simple Spreadsheet
Serving content with CherryPy
Adding an icon to a button
Adding conversions to a unitconverter instance
Changing option defaults
Chapter 3, Tasklist I: Persistence
Session IDs
Styling screen elements
Chapter 4, Tasklist II: Databases and AJAX
Using variable selection criteria
Spotting the error
Chapter 5, Entities and Relations
How to check a class
How to select a limited number of books
Chapter 6, Building a Wiki
Pop quiz
← Prev
Back
Next →
← Prev
Back
Next →