E-BOOK Python 3 Web Development Beginner's Guide

E-BOOK Python 3 Web Development Beginner's Guide

E-BOOK Python 3 Web Development Beginner's Guide
E-BOOK Python 3 Web Development Beginner's Guide


Author(s): Michel Anders
Publisher: Packt Publishing, Year: 2011
ISBN: 1849513740,9781849513746


Table of Contents

Preface 1

Chapter 1: Choosing Your Tools 7
Identifying the components of a web application 7
Time for action – getting an overview of a web application 8
Choosing suitable tools 10
Time for action – choosing a delivery framework, also known as web server 11
Time for action – choosing a server-side scripting language 12
Time for action – choosing a database engine 14
Time for action – deciding on object relational mappers 15
Time for action – choosing a presentation framework 17
Designing for maintainability and usability 18
Testing 18
Time for action – choosing a test framework 19
Version management 19
Usability 20
Good looking – adhering to common GUI paradigms 20
Themable 21
Cross-browser compatible 21
Cross-platform compatible 22
Maintainability 22
Standards compliant 22
Security 23
Reliable 23
Robust 23
Access control and authentication 24
Confidentiality 24
Integrity 25
A final word on security 25
Help, I am confused! 25
Time for action – maintaining overview 26
Summary 28

Chapter 2: Creating a Simple Spreadsheet 29

Python 3 30
Time for action – installing Python 3 CherryPy 30
Time for action – installing CherryPy 31
Installing jQuery and jQuery UI 31
Serving an application 32
Time for action – serving a dummy application 33
Time for action – serving HTML as dynamic content 34
Who serves what: an overview 36
HTML: separating form and content 37
Time for action – a unit convertor 38
HTML: form-based interaction 39
JavaScript: using jQuery UI widgets 40
Time for action – conversion using unitconverter.js 40
jQuery selectors 42
CSS: applying a jQuery UI theme to other elements 43
Time for action – converting a unit convertor into a plugin 45
JavaScript: creating a jQuery UI plugin 46
Designing a spreadsheet application 51
Time for action – serving a spreadsheet application 51
HTML: keeping it simple 52
JavaScript: creating a spreadsheet plugin 52
The missing parts 58
Summary 58

Chapter 3: Tasklist I: Persistence 59

Designing a tasklist application 59
Time for action – creating a logon screen 62
Serving a logon screen 69
Setting up a session 70
Expiring a session 71
Designing a task list 72
Time for action – running tasklist.py 72
Python: the task module 75
Time for action – implementing the task module 76
Adding new tasks 80
Deleting a task 81
JavaScript: tasklist.js 83
Time for action – styling the buttons 83
JavaScript: tooltip.js 85
Time for action – implementing inline labels 86
CSS: tasklist.css 87
Summary 90


Chapter 4: Tasklist II: Databases and AJAX 91

The advantages of a database compared to a filesystem 92
Choosing a database engine 92
Database-driven authentication 93
Time for action – authentication using a database 94
Tasklist II – storing tasks in a database 99
Improving interactivity with AJAX 99
Time for action – getting the time with AJAX 100
Redesigning the Tasklist application 102
Database design 103
Time for action – creating the task database 103
Time for action – retrieving information with select statements 105
TaskDB – interfacing with the database 106
Time for action – connecting to the database 106
Time for action – storing and retrieving information 107
Time for action – updating and deleting information 109
Testing 111
Time for action – testing factorial.py 112
Now what have we gained? 113
Time for action – writing unit tests for tasklistdb.py 114
Designing for AJAX 116
Click handlers 120
The application 121
Time for action – putting it all together 123
Have a go hero – refreshing the itemlist on a regular basis 125
Summary 126

Chapter 5: Entities and Relations 127

Designing a book database 127
The Entity class 128
Time for action – using the Entity class 129
Time for action – creating instances 132
The Relation class 138
Time for action – using the Relation class 138
Relation instances 141
Time for action – defining the Books database 144
The delivery layer 150
Time for action – designing the delivery layer 151
Time for action – adding a new book 162


Auto completion 165
Time for action – using input fields with auto completion 166
The presentation layer 168
Time for action – using an enhanced presentation layer 168
Summary 170

Chapter 6: Building a Wiki 171

The data layer 172
Time for action – designing the wiki data model 172
The delivery layer 175
Time for action – implementing the opening screen 176
The structural components 177
The application methods 179
Time for action – implementing a wiki topic screen 180
Time for action – editing wiki topics 182
Additional functionality 185
Time for action – selecting an image 185
Time for action – implementing a tag cloud 190
Time for action – searching for words 192
The importance of input validation 195
Time for action – scrubbing your content 196
Time for action – rendering content 200
Summary 201

Chapter 7: Refactoring Code for Reuse 203

Time for action – taking a critical look 203
Refactoring 205
Time for action – defining new entities: how it should look 205
Metaclasses 206
Time for action – using metaclasses 207
MetaEntity and AbstractEntity classes 208
Time for action – implementing the MetaEntity and AbstractEntity classes 209
Relations 217
Time for action – defining new relations: how it should look 217
Implementing the MetaRelation and AbstractRelation classes 219
Adding new methods to existing classes 222
Browsing lists of entities 224
Time for action – using a table-based Entity browser 224
Time for action – examining the HTML markup 229
Caching 232
The books application revisited 236
Time for action – creating a books application, take two 236
Summary 242

Chapter 8: Managing Customer Relations 243

A critical review 243
Designing a Customer Relationship Management application 244
Time for action – implementing a basic CRM 244
Adding and editing values 248
Time for action – adding an instance 249
Time for action – editing an instance 251
Adding relations 257
Picklists 259
Time for action – implementing picklists 259
Summary 262

Chapter 9: Creating Full-Fledged Webapps: Implementing Instances 263

Even more relations 263
Time for action – showing one-to-many relationships 264
Time for action – adapting MetaRelation 266
Time for action – enhancing Display 270
Time for action – enhancing Browse 271
Access control 274
Time for action – implementing access control 275
Role-based access control 278
Time for action – implementing role-based access control 279
Summary 283

Chapter 10: Customizing the CRM Application 285

Time for action – sorting 285
Time for action – filtering 290
Customization 292
Time for action – customizing entity displays 292
Time for action – customizing entity lists 298
Time for action – adding a delete button 301
Summary 302
Appendix A: References to Resources 303
Good old offline reference books 303
Additional websites, wikis, and blogs 304
Appendix B: Pop Quiz Answers 307

Chapter 2, Creating a Simple Spreadsheet 307
Chapter 3, Tasklist I: Persistence 308
Chapter 4, Tasklist II: Databases and AJAX 309
Chapter 5, Entities and Relations 310
Chapter 6, Building a Wiki 310

Index 311


                                 Download

Publier un commentaire

0 Commentaires