2016-04-10 11 views
0

私はHTML形式の値をpostgresqlデータベースに入力しようとしていますが、私は500エラーを受け取ります。私は手動でこのようなプログラムに値を入力した場合は正常に動作します...SQLAlchemyからPostgresデータベースに挿入

@app.route('/add', methods=['POST']) 
def add(): 
    name = request.form['name'] 
    employer_id = random.random()%100000; 
    g.conn.execute("INSERT INTO employers(employer_id,name) VALUES ('C005329438','Twitter')") 
    return redirect('/') 

しかし、私はこの

@app.route('/add', methods=['POST']) 
def add(): 
    name = request.form['name'] 
    employer_id = random.random()%100000; 
    g.conn.execute("INSERT INTO employers(employer_id,name) VALUES (%d,%s)", employer_id, name) 
    return redirect('/') 

答えて

2
g.conn.execute("INSERT INTO employers(employer_id,name) VALUES (%d,%s)", employer_id, name) 
のような形からそれに値を送信エラーごとに時間を取得します

は、おそらく次のようになります。

from sqlalchemy import text 

g.conn.execute(text("INSERT INTO employers(employer_id,name) VALUES (:id, :name)"), 
       {"id": str(employer_id), "name": name}) 

text()は、バインド・パラメータのためのバックエンド中立的サポートを提供します。

あなたの雇用主ID属性も、成功したクエリに応じてテキストタイプと思われるので、str()ラッピングを追加しました。

関連する問題