我有一个很严重的问题,我正急于解决。
我用烧瓶写了一个基本的python API。
我和女服务员一起运行它,因为如果我做 app.run()
它说我不应该这样做,因为它只适用于开发而不是分发。
这是.py
from flask import Flask
from flask_restful import Api, Resource, reqparse, abort
from dotenv import load_dotenv
import DBLayer
import os
import socket
from datetime import datetime
from waitress import serve
load_dotenv()
db_host = os.getenv('DB_HOST')
db_user = os.getenv('DB_USER')
db_pwd = os.getenv('DB_PWD')
db_port = os.getenv('DB_PORT')
db_name = os.getenv('DB_NAME')
app = Flask(__name__)
api = Api(app)
class Version(Resource):
def get(self):
comando = "select * from versiondb"
version = DBLayer.executeSQL(db_user, db_pwd, db_host, db_name, db_port, comando)
dataAggiornamento = datetime.strptime(str(versione[0]["Validita"]), "%Y-%m-%d %H:%M:%S")
version[0].update({"Validita": str(dataAggiornamento)})
if len(version) == 0:
return "", 404
return {"data": dict(version[0])}, 200
api.add_resource(Version, "/version")
if __name__ == "__main__":
serve(app, host=myhost, port=5000)
我在我的 Windows 服务器上执行这个 .py,它工作正常,但有时我注意到 api 不再响应 get 请求......所以我打开远程桌面来看看发生了什么... 终端被冻结了.. 我在终端上点击鼠标,在键盘上随机按下一个按钮,从冻结到现在的所有请求都在那个瞬间打印并执行,全部一次。 ..这太烦人了
有人可以帮助我吗?请。
答案 0 :(得分:0)
我发现在基于 Linux 的服务器上完全相同的代码没有出错。
所以...我假设(在对互联网做了一些研究之后)这是一个与 Windows 相关的问题。