Python 每次加载网页时都会出现运行时错误

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

今天,当我开始编写我的网页时,它工作正常,但突然我的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 /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未修改。