Skip to content

Commit 20b936d

Browse files
author
git
committed
修复发送yield出错的问题
1 parent 8520474 commit 20b936d

File tree

1 file changed

+22
-4
lines changed

1 file changed

+22
-4
lines changed

litefs.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -611,12 +611,17 @@ def session_id(self):
611611
def session(self):
612612
return self._session
613613

614+
@property
615+
def path_info(self):
616+
return self.environ['PATH_INFO']
617+
614618
def start_response(self, status_code=200, headers=None):
615619
buffers = self._buffers
616620
if self._headers_responsed:
617621
raise ValueError('Http headers already responsed.')
618622
response_headers = {}
619623
response_headers['Server'] = server_info
624+
response_headers['Content-Type'] = 'text/html;charset=utf-8'
620625
status_code = int(status_code)
621626
status_text = http_status_codes[status_code]
622627
buffers.write('HTTP/1.1 %d %s\r\n' % (status_code, status_text))
@@ -656,7 +661,7 @@ def _finish(self, content):
656661
rw = self._rw
657662
if not self._headers_responsed:
658663
self.start_response(200)
659-
rw.write(self._buffers.getvalue())
664+
rw.write(self._buffers.getvalue())
660665
if isinstance(content, basestring):
661666
rw.write(content)
662667
else:
@@ -699,7 +704,12 @@ def _handler(self):
699704
path = double_slash_sub('/', path)
700705
if path != path_info:
701706
result = self.redirect(path)
702-
return self._finish(result)
707+
try:
708+
return self._finish(result)
709+
except:
710+
content = exceptions.html_error_template().render()
711+
result = self._response(500, content=content)
712+
return self._finish(result)
703713
base, name = path_split(path)
704714
if not name:
705715
name = app.config.default_page
@@ -717,7 +727,11 @@ def _handler(self):
717727
result = self._response(500)
718728
return self._finish(result)
719729
else:
720-
return self._finish(result)
730+
try:
731+
return self._finish(result)
732+
except:
733+
result = exceptions.html_error_template().render()
734+
return self._finish(result)
721735
litefile = app.files.get(path)
722736
if litefile is not None:
723737
return litefile.handler(self)
@@ -745,7 +759,11 @@ def _handler(self):
745759
result = self._response(500)
746760
return self._finish(result)
747761
else:
748-
return self._finish(result)
762+
try:
763+
return self._finish(result)
764+
except:
765+
result = exceptions.html_error_template().render()
766+
return self._finish(result)
749767
try:
750768
litefile = self._load_static_file(base, name)
751769
except IOError:

0 commit comments

Comments
 (0)