2017-05-29 106 views
0

我想運行一個sql函數插入數據到表中。我正在按照here解釋的例子,但是每當我運行腳本時,沒有數據被插入到表中,腳本也沒​​有返回消息。這裏是代碼:我可能會做錯什麼?錯誤當試圖插入數據到sqlite3表

from flask import render_template, flash, redirect, request 
from app import app 
from .forms import LoginForm 
from .forms import RegistrationForm 
import sqlite3 as sql 

@app.route('/') 
@app.route('/index') 


@app.route('/registration', methods = ['GET','POST']) 
def registration(): 
    form = RegistrationForm() 

    if request.method == 'POST': 
     try: 
     card_id = request.form['card_id'] 
     pin = request.form['pin'] 
     account_id = request.form['account_id'] 


     with sql.connect("testDB.db") as con: 
      cur = con.cursor() 

      cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?,?)",(card_id,pin,account_id)) 

      con.commit() 
      msg = "Record successfully added" 
     except: 
     con.rollback() 
     msg = "error in insert operation" 

     finally: 
     return render_template("index.html", msg=msg) 
     con.close() 

    else: 
     return render_template("registration.html", form=form) 

回答

1

一個問題,我看到,可能是一個錯字或別的東西,是你有你的INSERTVALUES子句中佔位符,但你似乎只打算指定列。更改此:

cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?,?)",(card_id,pin,account_id)) 

這樣:

cur.execute("INSERT INTO atm_card (card_id,pin,account_id) VALUES (?,?,?)",(card_id,pin,account_id)) 
+1

您的解決方案解決了這個問題@Tim Biegeleisen – tapeli