-2

首先,我了解使用 ORM 解决方案的价值,稍后将使用 SQL-Alchemy。

我已经安装了 Flask 并且正在使用 flask-mysql。

我不知道如何获得 SQL“desc”命令的结果。

这是我正在使用的代码:

from flask import Flask, render_template, request, redirect, jsonify
import requests
from flaskext.mysql import MySQL

app = Flask(__name__)

@app.route("/")
def main():
    return render_template('login.html')

@app.route("/login", methods=['POST'])
def login():
    #username = request.form['username']   #not using the form fields yet
    #password = request.form['password']
    mysql = MySQL()
    app.config['MYSQL_DATABASE_USER'] = '<my user here>'
    app.config['MYSQL_DATABASE_PASSWORD'] = '<password here>'
    app.config['MYSQL_DATABASE_DB'] = '<database name here>'
    app.config['MYSQL_DATABASE_HOST'] = '<database server IP address here>'
    mysql.init_app(app)

    conn = mysql.connect()
    cursor = conn.cursor()
    #cursor = mysql.connection.cursor()  #invalid code, at least for this version of flask-mysql
    cursor.execute("desc user;")
    result = jsonify(cursor.fetchall())

    #row = cursor.fetchone()
    return "<!DOCTYPE html><html><body>" + str(result)+ "</body></html>"

if __name__ == "__main__":
    app.run()

它似乎正在连接到数据库,登录并发送 desc 命令 OK,因为结果的内容是“响应 268 字节 [200 OK]”(可以通过在浏览器中获得响应后查看页面源代码来看到) .

有什么方法可以获得结果(表格描述),而不仅仅是“好的,我运行了这个命令”?

谢谢你。

4

1 回答 1

0

我想您想获取所有记录并按 desc 顺序对它们进行排序。你可以试试这个。

from flask_mysqldb import MySQL

app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 
app.config['MYSQL_DB'] = 
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'


# initialize mysql
mysql = MySQL(app)

...

@app.route('/posts')
def posts():
    cur = mysql.connection.cursor()
    result = cur.execute('SELECT * FROM posts ORDER BY postdate DESC ')
    posts = cur.fetchall()

    if result > 0:
        return render_template('posts.html', posts=posts)
    else:
        message = 'I shouldn't find any post'
        return render_template('posts.html', message=message)

    cur.close
于 2017-10-21T20:48:12.780 回答