提问人:José Carlos 提问时间:11/16/2023 最后编辑:Brian Tompsett - 汤莱恩José Carlos 更新时间:11/17/2023 访问量:50
pyodbc。错误:('01000', “[01000] 在渲染上部署 Flask API 期间
pyodbc.Error: ('01000', "[01000] during deploy of a Flask API on Render
问:
我正在尝试在渲染 (render.com) 上部署 Flask Api,但出现错误:
pyodbc。错误: ('01000', “[01000] [unixODBC][驱动程序管理器] 无法打开库 'ODBC Driver 17 for SQL Server':找不到文件 (0) (SQLDriverConnect)”)。
我的代码作为本地主机运行(我的数据库是本地的),但在我尝试部署 API 时则不然。 代码如下所示:
from flask import Flask, jsonify, request
import pyodbc
from flask_pydantic_spec import FlaskPydanticSpec
from flask_cors import CORS
app = Flask(__name__)
spec = FlaskPydanticSpec('flask', title="Endpoints da api de consulta \
da Base Nacional Curricular Comum - BNCC")
spec.register(app)
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})
data_for_connection = (
"Driver={ODBC Driver 17 for SQL Server};"
"Server=DESKTOP-1698A6Q\SQLEXPRESS;"
"Database=bncc;"
"Trusted_connection=YES;"
)
connection = pyodbc.connect(data_for_connection)
cursor = connection.cursor()
@app.route('/diario/aluno/<id_student>', methods=['GET'])
def list_student_by_id(id_student):
"Lista os dados de um estudante pelo id"
db = cursor.execute(f"SELECT * FROM tabela_alunos where id_aluno = ?", (id_student,))
query_data = db.fetchone() # Use fetchone() to retrieve a single row
if query_data is not None:
student_data = {
"nome": query_data[0],
"sobrenome": query_data[1],
"nome_completo": query_data[2],
"ano": query_data[3],
"nivel_ensino": query_data[4],
"idade": query_data[5],
"cpf": query_data[6],
"turma": query_data[7],
"id_aluno": query_data[8],
"status_aluno": query_data[9]
# "data_cadastro_aln": query_data[10]
}
return jsonify(data=student_data, message="Aluno solicitado")
else:
return jsonify(message="Aluno não encontrado"), 404
if __name__ == '__main__':
app.run()
我的 ProcFile 设置如下:
网站: Gunicorn main:app
我的要求.txt是这样的:
blinker==1.7.0
click==8.1.7
colorama==0.4.6
Flask==3.0.0
Flask-Cors==4.0.0
flask-pydantic-spec==0.5.0
gunicorn==21.2.0
inflection==0.5.1
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
packaging==23.2
pydantic==1.10.13
pyodbc==4.0.39
typing_extensions==4.8.0
Werkzeug==3.0.1
我尝试安装不同版本的 pyodbc,但在尝试部署它时仍然不起作用。 发生这种情况是因为我有本地数据库吗?
答: 暂无答案
评论
Server=DESKTOP-1698A6Q\SQLEXPRESS
sudo apt install msodbcsql17
pyodbc