首页 > 解决方案 > UWSGI 没有新鲜的 mysql 查询结果或 SP

问题描述

实际上我正在学习 python、flask 和 mysql。

我使用以下代码构建了一个宁静的 api:

from flask import Flask, request, jsonify
from flask_restful import Resource, Api, reqparse
from flask_httpauth import HTTPBasicAuth
from mysql.connector import errorcode
import mysql.connector
from flask_cors import CORS
from db import ObtenerMarcaciones, ObtenerRelojes

app = Flask(__name__)
api = Api(app)
auth = HTTPBasicAuth()
CORS(app, support_credentials=True)

#coneccion BD
try:
    db = mysql.connector.connect(user='XXX',
                                 password='XXx',
                                 host='XXX',
                                 database='rrhhMarcaciones')
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("Error en usuario y/o clave")
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print('La BD no existe')
    else:
        print(err)

class Marcaciones(Resource):
    def get(self):

        data = ObtenerMarcaciones()
        return jsonify(data)

def ObtenerMarcaciones():
json_data = []
try:
    cursor = db.cursor(buffered=True)
    idreloj = ([1])
    cursor.callproc('SP_TodasMarcaciones', idreloj)
except mysql.connector.Error as err:
    json_data = {'Error': str(err)}
else:
    headers = {'MARCACION', 'USUARIO', 'CI'}
    for p_resultado in cursor.stored_results():
        pMarcaciones = p_resultado.fetchall()
    for element in pMarcaciones:
        json_data.append(dict(zip(headers, element)))
finally:
    cursor.close()

return json_data

API,在 nginx 中,UWSGI 工作没有问题,但是

API 始终显示查询或 SP 的相同结果,直到我重新启动 UWSGI 服务。

示例:如果我将一些数据添加到 API 正在获取数据的表中,我将永远无法通过 API 获取,直到我重新启动 UWSGI 服务。

我的 UWSGI 配置文件:

module = wsgi:app
logger = file:/home/flask_api/AsistenciaAPI/logs/uwsgi_AsistenciaAPI.log
master = true
processes = 5
socket = /home/flask_api/AsistenciaAPI/AsistenciaAPI.sock
chmod-socket = 660
vacuum = true
die-on-term = true

我感谢任何帮助!谢谢!

标签: pythonmysqlnginxuwsgiflask-restful

解决方案


推荐阅读