Нужда заставила использовать Python в классическом ASP. Заставить все это работать не так сложно, информация по регистрации обработчика достаточно. Например я начинал со статьи на 4Guys. Там же есть информация про особенности работы с перечислениями в объекте Request. Но достаточно быстро всплыло две проблемы, решение которых заняло некоторое время.
- Обращение к функциям написанным на VBScript.
- Отступы Python’а в блоках с HTML.
Обращаться к функциям на VBScript оказалось достаточно просто. Если у нас есть функция myVBSFunc() оформленная в ASP’ом блоке <script>, то из питона к ней нужно обращаться так:
ScriptingNamespace.myVBSFunc()
С отступами найти решение было несколько сложнее. Допустим мы хотим написать:
if True: %>Some HTML here<% someCodeHere...
То при исполнении этот код преобразуется в нечто подобное:
if True: Response.WriteBlock(1) someCodeHere...
Как видим, были добавлены перевод строки до и после. А вызов метода WriteBlock не имеет отступа. И мы сразу получим IndentationError. Чтобы избежать этого, нам нужно блок HTML заключить в скобки:
if True: (%>Some HTML here<%) someCodeHere...
И так как Python’у все равно на отступы внутри скобок этот код отработает нормально.
Надеюсь эта заметка поможет кому-нибудь.