Se você está preso ao uso do IIS, use PyISAPIe em vez de CGI, se puder. Instruções e links para PyISAPIe estão abaixo. Seu host saberá muito mais sobre as extensões ISAPI se elas gerenciarem o IIS do que sobre Python, e não precisam saber muito sobre Python com o PyISAPIe.
MUITO MELHOR MANEIRA DE FAZER ISTO ESTÁ USANDO PyISAPIe, UMA EXTENSÃO ISAPI . O PyISAPIe é muito, muito mais rápido que o CGI no IIS7. O que isto faz é semelhante ao mod_python no Apache. A página inicial do projeto PyISAPIe tem instruções para configurar o Django com WSGI em PyISAPIe. Isso trará seu desempenho a velocidades razoáveis para um site público / de alto tráfego.
Configurar o Django em um ambiente IIS + Python via CGI será terrivelmente lento para qualquer uso de produção. Você nunca deve usá-lo para um site no qual espera atender mais de um punhado de solicitações por minuto. Ele também limita severamente o que você pode armazenar em cache na memória na estrutura de cache do Django, já que o processo do aplicativo Django é reiniciado a cada nova requisição.
Em um servidor da web como Apache, lighttpd, etc., com o mod_python, o interpretador Python executando o processo do Django permanece na memória e é inicializado com cada novo thread de trabalho do Apache que manipula muitas solicitações ao longo do tempo. Isso significa que o Python + Django não é encerrado e reiniciado para cada nova solicitação. Em uma configuração FastCGI, o servidor web (Apache ou lighttpd, por exemplo) cria um soquete (domínio UNIX ou TCP) através do qual ele se comunica com um aplicativo FastCGI (seu aplicativo web Django) sobre o protocolo FastCGI. Idem para configurações de proxy HTTP (eles falam HTTP em vez de FastCGI). Em um ambiente CGI, o interpretador Python é chamado de executar o aplicativo Django, completamente novo para cada solicitação, para que o aplicativo não consiga manter o estado entre as solicitações na memória e não possa armazená-lo corretamente em qualquer lugar, exceto em um banco de dados.
Suficiente ranting, se você precisar usar o IIS + CGI + Django, veja como realizar essa coisa horrível horrível: Use o seguinte código para criar seu próprio script CGI que executa seu aplicativo Django (ele traduz entre CGI e WSGI). Você terá que editar o script um pouco para que ele aponte para o seu aplicativo e código do Django. Esse é o script CGI para o qual você precisa passar solicitações. Em seguida, você precisa encaminhar / reescrever todos os pedidos para o seu script CGI ...
No IIS6, você precisará de um equivalente mod_rewrite como o IISRewrite, que eu acho que não é gratuito e é de código fechado. No IIS7, a Microsoft finalmente incluiu um módulo de reescrita de URL. A documentação para isso está localizada aqui . As instruções para criar regras de reescrita no IIS7 são aqui . Você desejará encaminhar tudo no URL base de destino a ser manipulado pelo seu script CGI.