为什么我的烧瓶服务器会停止并等待,直到我输入键盘



我的python flask服务器ehich正在我的Windows服务器上运行,一直在停止。这意味着在我按下命令提示符中的按钮之前,它不会给出响应。但有时它可以工作一个小时或更长时间,在我按下按钮后,它通常也可以工作一小时。

import flask
from flask import request, jsonify
import json
import requests
from json import JSONEncoder
import numpy
import logging
app = flask.Flask(__name__)
@app.route('/api/v1/admin/login', methods=['GET'])
def api_Admin_User():

if comparePassword(request.args.get('username'), request.args.get('password')):
logging.info("admin login successful for " + request.args.get('username'))
return jsonify({"success": True})
else:
logging.warning("admin login failed for "" + request.args.get('username') + "" with password "" + request.args.get('password') + "" and IP "" + request.remote_addr + """)
return jsonify({"success": False})
def comparePassword(username, password):
jsonFile = open("admin.json", "r") # Open the JSON file for reading
data = json.load(jsonFile) # Read the JSON into the buffer
jsonFile.close() # Close the JSON file
logging.info("comparing password for " + username)
if data[username.lower()]["password"] == password:
return True
else:
return False
from waitress import serve
serve(app, host="0.0.0.0", port=5000)# ssl_context=context

您是否尝试过使用app.run()而不是serve()?否则,使用serve()的原因是什么?

让我对你的代码进行一些改进:

import flask, json, requests, numpy, logging
from flask import request, jsonify
from json import JSONEncoder
# define comparePassword() before using Flask to avoid misundertandings/conflicts
#   by/with it
def comparePassword(username, password):
jsonFile = open("admin.json", "r") # Open the JSON file for reading
data = json.load(jsonFile) # Read the JSON into the buffer
jsonFile.close() # Close the JSON file
logging.info("comparing password for " + username)
if data[username.lower()]["password"] == password:
return True
else:
return False
app = flask.Flask(__name__)
@app.route('/api/v1/admin/login', methods=['GET'])
def api_Admin_User():

if comparePassword(request.args.get('username'), request.args.get('password')):
logging.info("admin login successful for " + request.args.get('username'))
return jsonify({"success": True})
else:
logging.warning("admin login failed for "" + request.args.get('username') + "" with password "" + request.args.get('password') + "" and IP "" + request.remote_addr + """)
return jsonify({"success": False})
# ditch waitress.serve
app.run(host="0.0.0.0", port=5000) # ssl_context=context

最新更新