python - 通过flask框架访问XAMPP中的MySQL数据库

标签 python mysql xampp

我刚刚开始为我的一个宠物项目研究 Flask 框架,因此,我一直在 envato tutsplus 中编写教程。我在 XAMPP 服务器中的 MySQL 中构建了数据库,并尝试访问它,但我不知道如何去做。

我在 Chrome 控制台中收到此错误无法加载资源:服务器响应状态为 500(内部服务器错误)。在执行此代码之前我已经启动了 XAMPP。

我知道@app.route('/signUp',methods=['POST','GET'])是要研究的关键方法,关键在于app.config['MYSQL_DATABASE_HOST']。我认为将 localhost 作为值会起作用,但事实并非如此,因此我尝试了不同的值,例如 http://localhost:80 等,但这似乎不起作用。我缺少什么?请帮帮我

这是后端代码:

from flask import Flask, render_template, request, json
from flask_mysqldb import MySQL
from werkzeug import generate_password_hash, check_password_hash

mysql = MySQL()
app = Flask(__name__)

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = ''
app.config['MYSQL_DATABASE_DB'] = 'BucketList'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)

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

@app.route('/showSignUp')
def showSignUp():
    return render_template('signup.html')

@app.route('/signUp',methods=['POST','GET'])
def signUp():
    try:
        _name = request.form['inputName']
        _email = request.form['inputEmail']
        _password = request.form['inputPassword']

        # validate the received values
        if _name and _email and _password:

        # All Good, let's call MySQL

            conn = mysql.connect()
            cursor = conn.cursor()
            _hashed_password = generate_password_hash(_password)
            cursor.callproc('sp_createUser',(_name,_email,_hashed_password))
            data = cursor.fetchall()

        if len(data) is 0:
            conn.commit()
            return json.dumps({'message':'User created successfully !'})
        else:
            return json.dumps({'error':str(data[0])})
        else:
            return json.dumps({'html':'<span>Enter the required fields</span>'})

except Exception as e:
    return json.dumps({'error':str(e)})
finally:
    cursor.close() 
    conn.close()

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

最佳答案

MYSQL_DATABASE_HOST 应该是您的数据库主机的地址,因此得名,而不是您的网络应用程序。

查看 the docs ,默认值为“localhost”,匹配的端口设置为 3306,这应该适合您的设置;你应该完全删除你的定义。

关于python - 通过flask框架访问XAMPP中的MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568579/

相关文章:

Python:用新字符串替换字符串中的字符范围

python - 决定使用 WSGI 还是 Django 来构建新的 Web 应用程序

python - 如何修改类方法?

python字典更新方法来扩展字典

mysql - SQL 是有效的,但是有什么方法可以使它更小(包括 sqlfiddle)

php - 如何使用 jQuery UI 对话框确认数据库行删除?

PHP _GET 问题多次尝试后未刷新数据

Mysql跨库外键

php - 如何更改 XAMPP 中的 PHP 版本?

php - MySQL、PHP、登录信息正确但 "Unable to connect to the database"错误