17.1. "Things to Do When Visiting Chicago"
This chapter is the fifth in our survey of Python Internet programming, and it continues Chapter 16's discussion. There, we explored the fundamentals of server-side Common Gateway Interface (CGI) scripting in Python. Armed with that knowledge, this chapter moves on to a larger case study that underscores advanced CGI topics.
This chapter presents PyMailCGIa web site for reading and sending email that illustrates security concepts, hidden form fields, URL generation, and more. Because this system is similar in spirit to the PyMailGUI program we studied in Chapter 15, this example also serves as a comparison of web and nonweb applications. This case study is based on CGI scripting, but it implements a complete web site that does something more useful than Chapter 16's examples.
As usual, in this book, this chapter splits its focus between application-level details and Python programming concepts. Because this is a fairly large case study, it illustrates system design concepts that are important in actual projects. It also says more about CGI scripts in general. PyMailCGI expands on the notions of state retention and security concerns and encryption.
The system presented here is neither particularly flashy nor feature rich as web sites go (in fact, the initial cut of PyMailCGI was thrown together during a layover at Chicago's O'Hare airport). Alas, you will find neither dancing bears nor blinking lights at this site. On the other hand, it was written to serve a real purpose, speaks more to us about CGI scripting, and hints at just how far Python server-side programs can take us. In Chapter 18, we will explore higher-level systems and tools that build upon ideas we will apply here. For now, let's have some fun with Python on the Web.