我有一个简单的Restful服务,它有些奇怪。代码如下:
from flask import Flask, make_response
from flask_restful import Resource, Api, fields
from get_response_demo import generate_rest_str
import dia_logging
logger = dia_logging.my_logger("api_rest", "demo.log")
app = Flask(__name__)
api = Api(app)
resource_fields = {
'messages': fields.String,
'jsons': fields.String,
}
class RestAPI(Resource):
def get(self, sentence):
dia_result = generate_rest_str(sentence)
logger.info(dia_result)
response = make_response(str(dia_result))
response.mimetype = 'application/json'
return response
api.add_resource(RestAPI, '/<string:sentence>')
if __name__ == '__main__':
app.run(debug=False, use_reloader=False, host='127.0.0.1', port=4000)
以及我向服务请求的方式: http://127.0.0.1:4000/sentence=hello
restful服务托管在Ubuntu计算机上。在我的Mac上,我没有发现问题。问题是,每当我测试对服务的请求时,除了处理参数“句子”发送的实际输入外,每次处理:
INFO:get_response_demo:restful, sentence:favicon.ico
因此,它仅对一个请求处理两次,并且重复处理了“ favicon.ico”。
如何避免这种情况?我是烧瓶新手。
答案 0 :(得分:0)
您至少有三个选择
在@app.route('/favicon.ico')
api.add_resource()
如果您要在nginx或Apache之后运行API,请在网络服务器配置中使用特殊情况的favicon.ico
,以使您的Flask代码永远看不到请求
安排提供来自/api/...
如果您想通过根级URL添加一些管理/监视功能,则后一种方法可以满足您的需求。您可以同时使用#2和#3。