[python-win32] IIS and ASP: If blocks that span multiple code blocks
Steven Manross
steven at manross.net
Sun Nov 1 20:12:17 EST 2020
I was wondering if there's any way to support this style of coding in ASP/Python.
This works in VBScript (but I'm trying to remove all my VBScript), but I seem to be getting hit by the fact that each block of code is being analyzed as a single block of code and the "if" not being able to span multiple code blocks.
#VBScript
<%
If This = "THAT" Then
Response.Write("BEFORE")
%>
This does == THAT<BR>
<!-- #include virtual="/inc/whatever.vbscriptincludefile" -->
<%
Response.Write("AFTER<BR>")
End If
%>
What I am trying to show you is that in VBScript, an IF block can span the multiple code regions (<% code %>) and conditionally display the HTML in between the IF and END IF if the condition matches
Note that in VBScript if This = "THAT", this VBScript would display:
BEFORE<BR>
This does == THAT<BR>
*** whatever the include file displayed
AFTER<BR>
And of course, if This <> "THAT" it wouldn't display anything from above!
However in Python, and a similarly structured code-block:
#Python
<%
if This == "THAT":
Response.Write("BEFORE<BR>")
%>
This does == THAT<BR>
<!-- #include virtual="/inc/whatever.pythonincludefile" -->
<%
Response.Write("AFTER<BR>")
%>
In python, We would get (if This == "THAT"):
BEFORE
This does == THAT<BR>
*** and whatever the include file displayed (if the include file had no additional logic to filter the data)
AFTER<BR>
However, in python, we would get (if This != "THAT"):
This does == THAT<BR>
*** and whatever the include file displayed (if the include file had no additional logic to filter the data)
AFTER<BR>
Lastly, if I indent the Response.Write("AFTER<BR>") in this second code block to try and span the code block to the same conditional started in the first code block, I get a syntax error like this:
unexpected indent
/folder/somefile.asp, line ###
Response.Write("AFTER<BR>")
---^
is there any way around this without doing a lot of other if blocks in each section of <% code %>
It sounds like an RFE to me (and probably not an easy one), but maybe I'm missing something?
IIS on W2016 (most recent patches)
Activestate Python: 3.8.2
pywin32==227
Please and Thank You,
Steven
More information about the python-win32
mailing list