Flask-mysql возвращает целочисленное значение вместо строки

#python #mysql #flask

#python #mysql #flask

Вопрос:

У меня проблемы с flask-mysql (https://flask-mysql.readthedocs.io/en/latest /) когда я пытаюсь получить пользователей из базы данных с помощью функции cursor.execute, курсор возвращает число вместо строки пользователей, мой код выглядит следующим образом:

 from flask import Flask, render_template,url_for,request,session,logging,redirect,flash
from flaskext.mysql import MySQL


def create_app():
    app = Flask(__name__)
    # do some setup
    return app

app = create_app()

app.config["MYSQL_DATABASE_USER"] = "username"
app.config["MYSQL_DATABASE_HOST"] = "localhost"
app.config["MYSQL_DATABASE_PASSWORD"] = "password."
app.config["MYSQL_DATABASE_DB"] = "databasename"


mysql = MySQL()
mysql.init_app(app)

@app.route("/database")
def database():
    cursor = mysql.get_db().cursor()
    dbs = cursor.execute("select user from mysql.user")
    
    
    return str(dbs)


def hello_world():
    return 'Hello, World!'

@app.route("/home")
def home():
    return render_template("home.html")
  

Когда я пытаюсь получить доступ к 127.0.0.1: 5000 / database, я получаю это в браузере:

 9
  

Это число 9 фактически соответствует количеству пользователей в базе данных.

Комментарии:

1. cursor.execute() возвращает итератор, а не значение одного столбца из строки.

2. да, попробуйте print (dbs) и посмотрите, как это выглядит 🙂

3. чего вы ожидаете от этого? список пользователей?