我刚刚开始为我的一个宠物项目研究 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/