sqlite3 python3, пользовательский ввод для базы данных - PullRequest
0 голосов
/ 27 февраля 2019

Я пытался ввести прямые данные в базу данных sqlite из пользовательского ввода, но он захватывает только первый ввод и исключает остальные, в чем я могу ошибаться?

Вот код:

import sqlite3 as lite
class DataInput:
    def __init__(self):
        self.id = input("Enter ID: ")
        self.name = input("Enter name: ")
        self.price = input("Enter price: ")
running = True
a = DataInput()
con = lite.connect('kev.db')
with con:
    cur = con.cursor()

    cur.execute("DROP TABLE IF EXISTS cars")

    cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")

    cur.execute("INSERT INTO cars VALUES(?, ?, ?)", (a.id, a.name, a.price))
while running:
    DataInput()
    continue

1 Ответ

0 голосов
/ 27 февраля 2019

continue вам не помогает.

Конструктор, побочный эффект которого состоит в предложении трех пользовательских приглашений, ну, немного странно, но мы его отпустим.

Вы хотите, чтобы DROP / CREATE один раз, а затем вставлять много раз:

with lite.connect('kev.db') as con:
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS cars")
    cur.execute("CREATE TABLE cars(id INT, name TEXT, price INT)")

    running = True
    while running:
        a = DataInput()
        cur.execute("INSERT INTO cars VALUES(?, ?, ?)", (a.id, a.name, a.price))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...