Skip to content

Commit bd9659c

Browse files
committed
Added method to call pyhtml from a webroute
1 parent 68a7ac5 commit bd9659c

File tree

1 file changed

+29
-22
lines changed

1 file changed

+29
-22
lines changed

MicroWebSrv2/mods/PyhtmlTemplate.py

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,29 +43,36 @@ def OnRequest(self, microWebSrv2, request) :
4343
if (request.Method == 'GET' or request.Method == 'HEAD') and \
4444
request.Path.lower().endswith('.pyhtml') :
4545
filepath = microWebSrv2.ResolvePhysicalPath(request.Path)
46-
if filepath :
47-
try :
48-
with open(filepath, 'r') as file :
49-
code = file.read()
50-
try :
51-
self._pyGlobalVars['Request'] = request
52-
codeTemplate = CodeTemplate(code, microWebSrv2.HTMLEscape)
53-
content = codeTemplate.Execute(self._pyGlobalVars, None)
54-
request.Response.ReturnOk(content)
55-
except Exception as ex :
56-
microWebSrv2.Log( 'Exception raised from pyhtml template file "%s": %s' % (filepath, ex),
57-
microWebSrv2.ERROR )
58-
if self._showDebug :
59-
request.Response.Return( 500,
60-
PyhtmlTemplate._CODE_CONTENT_DEBUG
61-
% { 'path' : filepath,
62-
'message' : ex } )
63-
else :
64-
request.Response.ReturnInternalServerError()
65-
except :
66-
request.Response.ReturnForbidden()
46+
self.ReturnTemplate(microWebSrv2, request, filepath)
47+
48+
# ------------------------------------------------------------------------
49+
50+
def ReturnTemplate(self, microWebSrv2, request, filepath):
51+
if not filepath:
52+
request.Response.ReturnNotFound()
53+
54+
try :
55+
with open(filepath, 'r') as file :
56+
code = file.read()
57+
except :
58+
request.Response.ReturnForbidden()
59+
60+
try :
61+
self._pyGlobalVars['Request'] = request
62+
codeTemplate = CodeTemplate(code, microWebSrv2.HTMLEscape)
63+
content = codeTemplate.Execute(self._pyGlobalVars, None)
64+
request.Response.ReturnOk(content)
65+
66+
except Exception as ex :
67+
microWebSrv2.Log( 'Exception raised from pyhtml template file "%s": %s' % (filepath, ex),
68+
microWebSrv2.ERROR )
69+
if self._showDebug :
70+
request.Response.Return( 500,
71+
PyhtmlTemplate._CODE_CONTENT_DEBUG
72+
% { 'path' : filepath,
73+
'message' : ex } )
6774
else :
68-
request.Response.ReturnNotFound()
75+
request.Response.ReturnInternalServerError()
6976

7077
# ------------------------------------------------------------------------
7178

0 commit comments

Comments
 (0)