Python 每次加载网页时都会出现运行时错误
今天,当我开始编写我的网页时,它工作正常,但突然我的css文件不工作了。我的更改没有更新。读了一点之后,我读到我应该清理我的缓存。我这样做了,之后当我运行我的网页并单击任何按钮时,我会在控制台中看到下一个输出:Python 每次加载网页时都会出现运行时错误,python,css,Python,Css,今天,当我开始编写我的网页时,它工作正常,但突然我的css文件不工作了。我的更改没有更新。读了一点之后,我读到我应该清理我的缓存。我这样做了,之后当我运行我的网页并单击任何按钮时,我会在控制台中看到下一个输出: 127.0.0.1:50860 - - [22/Dec/2019 13:22:20] "HTTP/1.1 POST /check-login" - 200 OK 127.0.0.1:50861 - - [22/Dec/2019 13:22:20] "HTTP/1.1 GET /stati
127.0.0.1:50860 - - [22/Dec/2019 13:22:20] "HTTP/1.1 POST /check-login" - 200 OK
127.0.0.1:50861 - - [22/Dec/2019 13:22:20] "HTTP/1.1 GET /static/css/swap.css" - 304 Not Modified
RuntimeError('generator raised StopIteration')
127.0.0.1:50860 - - [22/Dec/2019 13:22:20] "HTTP/1.1 GET /" - 200 OK
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/web/httpserver.py", line 239, in __iter__
raise StopIteration()
StopIteration
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/cheroot/server.py", line 1280, in communicate
req.respond()
File "/usr/local/lib/python3.7/site-packages/cheroot/server.py", line 1083, in respond
self.server.gateway(self).respond()
File "/usr/local/lib/python3.7/site-packages/cheroot/wsgi.py", line 145, in respond
for chunk in filter(None, response):
RuntimeError: generator raised StopIteration
127.0.0.1:50860 - - [22/Dec/2019 13:22:20] "HTTP/1.1 GET /static/css/swap.css" - 304 Not Modified
RuntimeError('generator raised StopIteration')
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/web/httpserver.py", line 239, in __iter__
raise StopIteration()
StopIteration
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/cheroot/server.py", line 1280, in communicate
req.respond()
File "/usr/local/lib/python3.7/site-packages/cheroot/server.py", line 1083, in respond
self.server.gateway(self).respond()
File "/usr/local/lib/python3.7/site-packages/cheroot/wsgi.py", line 145, in respond
for chunk in filter(None, response):
RuntimeError: generator raised StopIteration
我的主文件如下所示:
import web
from Models import RegisterModel, LoginModel
web.config.debug = False
urls = (
'/', 'home',
'/login', 'login',
'/register', 'register',
'/postregistration', 'postRegistration',
'/check-login', 'checkLogin',
'/logout', 'logout'
)
TEMPLATE_PATH = './Views/Templates'
BASE_FILE = 'MainLayout'
app = web.application(urls, globals())
session = web.session.Session(app, web.session.DiskStore("sessions"), initializer={'user': None})
session_data = session._initializer
render = web.template.render(TEMPLATE_PATH, base=BASE_FILE, globals={'session': session_data, 'current_user': session_data["user"]})
# Classes/Routes
class home:
def GET(self):
return render.home()
class login:
def GET(self):
return render.login()
class checkLogin:
def POST(self):
data = web.input()
login_model = LoginModel.LoginModel()
isCorrect = login_model.check_user(data)
if isCorrect:
session_data["user"]=isCorrect
return isCorrect
return "error"
class logout:
def GET(self):
session['user'] = None
session_data['user'] = None
session.kill()
return "success"
class register:
def GET(self):
return render.register()
class postRegistration:
def POST(self):
data = web.input()
reg_model = RegisterModel.RegisterModel()
reg_model.insert_user(data)
return data.username
if __name__ == "__main__":
app.run()
如果您需要任何文件的进一步信息,请告诉我
提前感谢。类似问题。在Python3.7中,StopIteration的规则已经改变
Python3.7中的所有代码都启用了PEP 479,这意味着
在协同程序中直接或间接引发的StopIteration异常
生成器被转换为运行时错误异常
您需要使用try,除非在上面的链接中出现错误
编辑
在您的代码中,css似乎没有改变,所以没有修改
在../site packages/web/httpserver.py中的\uu iter\uu
函数中,您将找到此部分
def __iter__(self):
# ...
try:
path = self.translate_path(self.path)
etag = '"%s"' % os.path.getmtime(path)
client_etag = environ.get("HTTP_IF_NONE_MATCH")
self.send_header("ETag", etag)
if etag == client_etag:
self.send_response(304, "Not Modified")
self.start_response(self.status, self.headers)
return
except OSError:
pass # Probably a 404
在底部加上这个
except StopIteration:
return
或者使用
pass
而不是return
。这将详细重写相同的内容。谢谢,我知道现在发生了什么,但我仍然不知道应该在哪里添加异常处理程序。我也不明白为什么昨天没有这个错误,而今天没有。我已经在我的答案中添加了代码。请试一试。关于您今天遇到的错误,搜索304未修改。