Skip to content

Commit c2f4a55

Browse files
authored
Merge pull request #32 from Hecatron-Forks/master
Added method to call pyhtml from a webroute
2 parents c9375dc + a971730 commit c2f4a55

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed

MicroWebSrv2/mods/PyhtmlTemplate.py

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -43,29 +43,38 @@ 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+
return
54+
55+
try :
56+
with open(filepath, 'r') as file :
57+
code = file.read()
58+
except :
59+
request.Response.ReturnForbidden()
60+
return
61+
62+
try :
63+
self._pyGlobalVars['Request'] = request
64+
codeTemplate = CodeTemplate(code, microWebSrv2.HTMLEscape)
65+
content = codeTemplate.Execute(self._pyGlobalVars, None)
66+
request.Response.ReturnOk(content)
67+
68+
except Exception as ex :
69+
microWebSrv2.Log( 'Exception raised from pyhtml template file "%s": %s' % (filepath, ex),
70+
microWebSrv2.ERROR )
71+
if self._showDebug :
72+
request.Response.Return( 500,
73+
PyhtmlTemplate._CODE_CONTENT_DEBUG
74+
% { 'path' : filepath,
75+
'message' : ex } )
6776
else :
68-
request.Response.ReturnNotFound()
77+
request.Response.ReturnInternalServerError()
6978

7079
# ------------------------------------------------------------------------
7180

0 commit comments

Comments
 (0)