2016-09-19 3 views
0

私はペットプロジェクトのFlaskフレームワークを調べ始めました。私はenvato tutsplusのチュートリアルに取り組んでいます。私はXAMPPサーバーに存在するMySQLにデータベースを構築していますが、アクセスしようとしていますが、どうやってそれを行うのか分かりません。フラスコフレームワークを介してXAMPPのMySQLデータベースにアクセス

クロムコンソールFailed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)でこのエラーが発生します。私はすでにこのコードを実行する前に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) 
+0

あなたのソースコードに '_nameと_emailと_password:'が正しくインデントされていますか?あなたの例ではないからです。 – miso

+1

'app.run'でデバッグモードを有効にしてください。だからあなたはFlaskからより良いエラー報告を得ることができます。 – miso

+0

これは正しく字下げされていますが、この例では行っていませんが、今度は –

答えて

0

MYSQL_DATABASE_HOSTはその名ではなく、ウェブアプリ、あなたのデータベースホストのアドレスでなければなりません。

the docsを見ると、デフォルトは「localhost」であり、一致するポート設定は3306です。セットアップには問題ありません。定義全体を削除する必要があります。

+0

を理解しました.XAMPPでMySQLにアクセスできる方法はありますか?通常のPythonではソケットを使用することができましたが、フラスコでそのようなことをする方法はありますか? –

+0

[docs](http://flask-mysqldb.readthedocs.io/en/latest/)を見てください。 - MYSQL_UNIX_SOCKETの設定があります。実際にFlask-MySQLdbを使用している場合は上記の間違ったドキュメントにリンクしていますが、間違った設定名もすべて表示されているようです。使用しているライブラリのドキュメントに従ってください。 –

+0

ありがとう、これは私が必要とする解決策を持っているようだ、それをチェックアウトします –

関連する問題