我的代码:
import datetime
from flask import Flask, render_template, request
from pymongo import MongoClient
app = Flask(__name__)
client = MongoClient(<connectionlink>)
app.db = client.blog
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "POST":
entry_content = request.form.get("content")
formatted_date = datetime.datetime.today().strftime("%d-%m-%Y")
app.db.entries.insert_one({"content":entry_content, "date":formatted_date})
entries_with_date = [
(
entry["content"],
entry["date"],
datetime.datetime.strptime(entry["date"], "%d-%m-%Y").strftime("%b %d")
)
for entry in app.db.entries.find({})
]
return render_template("index.html", entries=entries_with_date)
错误:
Exception in thread Thread-1 (serve_forever):
Traceback (most recent call last):
File "C:\Users\user\.pyenv\pyenv-win\versions\3.11.1\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "C:\Users\user\.pyenv\pyenv-win\versions\3.11.1\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\user\Desktop\flask\.venv\Lib\site-packages\werkzeug\serving.py", line 766, in serve_forever
super().serve_forever(poll_interval=poll_interval)
File "C:\Users\user\.pyenv\pyenv-win\versions\3.11.1\Lib\socketserver.py", line 233, in serve_forever
ready = selector.select(poll_interval)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.pyenv\pyenv-win\versions\3.11.1\Lib\selectors.py", line 323, in select
r, w, _ = self._select(self._readers, self._writers, [], timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\user\.pyenv\pyenv-win\versions\3.11.1\Lib\selectors.py", line 314, in _select
r, w, x = select.select(r, w, w, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: [WinError 10038] an operation was attempted on something that is not a socket.
数据库和应用程序似乎都工作正常,但当我将flask debug设置为1并运行应用程序时,我得到了这个错误。从我在traceback上读到的内容来看,似乎是py-env问题,但我真的不知道该怎么办。
1条答案
按热度按时间2eafrhcq1#
我也有这个问题,我在vs代码中运行时将其追溯到werkzeug 2.2.3。在2.2.2中,它不会引发异常。我在这里提出了这个问题:https://github.com/pallets/werkzeug/issues/2627