Python & CGI Programming


Environment

I develop websites using a dual monitor Windows XP PC. My Internet websites are all deployed on Linux servers, so I have to take some care during development. The major difference between Linux and Windows is Linux is case sensitive, whereas Windows is not. I try to maintain a consistent naming standard for my JPEG's, HTML templates, and code modules.

My dual monitors are 19" Hitachi CRTs. If you've never used a dual monitor PC, you don't know what you're missing. I can modify code on one screen and quickly see the results in a web browser on the other. It really speeds website development to have two screens available.

I couldn't find a lot of information about developing websites using Windows. I discovered most of this information through trial and error.

I have the following development components installed (as of March 2005) on my Windows XP PC:

I configured the httpd.conf file in Apache to point to the Windows directories containing my Python CGI modules. The HTML templates are stored in a directory for each of my websites. The Python CGI modules for a website are stored in a child directory called CGI.

My website host defined the CGI directory this way. Others require that the CGI directory be named cgi-bin. Find out what your website host requires and set up your development environment the same way.

I'm no Apache expert nor a security expert, but I'm running Apache on localhost behind a hardware firewall. If you want to learn all about managing Apache, there are many great books and articles explaining the process. I'm just going to list the configuration changes I made for this website. My website working drive is H:


#
# Aliases for the Python CGI Programming Web Site
#
Alias /python   "H:/Web Sites/Python CGI Programming"
Alias /python/  "H:/Web Sites/Python CGI Programming/"

ScriptAlias /CGI/ "H:/Web Sites/Python CGI Programming/CGI/"

<Directory "H:/Web Sites/Python CGI Programming/CGI">
    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all
</Directory>

AddHandler cgi-script .cgi .py

I didn't put any security on the MySQL database, again because I'm using it on localhost behind a hardware firewall. I also named my databases more logically than I can on a website hosting service. Later, when I explain my Python SQLRoutines module, I'll show you how I deal with the different names and levels of security.

I installed Firefox because I like it better to browse the web, and because I need to test my website on multiple browsers.

Previous Page: History, Top Page: Index, Next Page: HTML Template