Flask Python应用程序无法创建数据库游标

Flask Python应用程序无法创建数据库游标,python,mysql,Python,Mysql,我试图在flask中执行一个基本查询,并将其输出。在prod中,无法创建mysql光标 这里是app.py: #from flask_mysqldb import MySQL import pymysql.cursors connection = pymysql.connect(host='localhost', user='myusr', port=3306, password='mypass', db='mydb', charset='utf8mb4', cursorclass=pymys

我试图在flask中执行一个基本查询,并将其输出。在
prod
中,无法创建
mysql
光标

这里是
app.py

#from flask_mysqldb import MySQL
import pymysql.cursors

connection = pymysql.connect(host='localhost', user='myusr', port=3306, password='mypass', db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)


@app.route('/', methods=('GET', 'POST'))
def email():


    form = EmailForm()

    try:
        with connection.cursor() as cursor:
            cursor.execute("SELECT post_title, post_name, YEAR(post_date) YEAR, MONTH(post_date) MONTH FROM mydb.wp_posts WHERE post_status='publish' ORDER BY RAND() LIMIT 3")
            r = cursor.fetchall()
            print(r)
    Exception as e:
        print(e)
    finally:
        connection.close()
My
db gui
程序对我的数据库用户具有以下访问权限(请参见黑线):

更新:::收到错误,当我包含上述
try
行时:

2017/01/02 09:10:30 [error] 1042#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xxx.xxx.xxx, server: mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8001/", host: "mysite.com"
我测试了这个导入(
from flask_mysqldb import MySQL
)在解释器中运行良好,
MySQL
本身也已安装

我测试了上面的凭证是否可以通过
guidb程序连接

我做错了什么?我一直在关注flask和mysql,但现在我在关注

为什么会失败?有人看见什么吗


谢谢

请尝试以下方式更改代码并直接运行该文件

from flask_mysqldb import MySQL

app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_PORT'] = '3306'
app.config['MYSQL_DB']   = 'mydb'
app.config['MYSQL_USER'] = 'myuser'
app.config['MYSQL_PASSWORD'] = 'mypass'
mysql = MySQL(app)

@app.route('/')
def test():
   cur = mysql.connection.cursor()

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

请提供您收到的错误消息。当我包含上面的
光标时,nginx将以Http 502失败Error@PavelRyvintsev-请查看更新的错误和db权限。Nginx会隐藏您得到的真实错误。如果您直接运行flask应用程序,您可能会收到更有意义的错误消息。@PavelRyvintsev-这意味着运行
app.py
-时出错-我在询问上面的mysqldb是否正常。还有`我怎样才能直接运行flask应用程序?谢谢你的回答。我尝试了这个,结果是
500内部服务器错误
@Jshee内部服务器错误可能是任何东西。如果您直接运行上面的代码,而不是通过Nginx,那么您将能够看到错误消息。就像运行任何其他python文件一样运行它。当我这样运行它时,我得到:
python app.py
i得到:
*使用stat重新启动*调试器处于活动状态!*调试器pin码:115-763-111