Попросите пользовательский ввод и вставьте в БД в Python с sqlite3 - PullRequest
0 голосов
/ 02 мая 2019

В данный момент я пытаюсь попросить пользователя ввести данные в Python, ввести некоторую информацию (здесь: costID, cost, categoryID, date).Но я не знаю, чтобы начать.На этом шаге проверка ввода не требуется.

Мне удалось получить доступ к своей базе данных и вставить что-то вручную.Я пробовал несколько способов использования функции python input, но не могу использовать ее в качестве заполнителя в строке SQL.

import sqlite3 

with sqlite3.connect('Expenses.sqlite') as conn:
    # INSERT MANUALLY
    script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES ('103', '43625.5', '5', '2019-01-20');"
    conn.execute(script) # execute the script
    conn.commit()  # commit changes to the file
    # INSERT USER INPUT ???
    pass

Это моя идея:

with sqlite3.connect('Expenses.sqlite') as conn:

    amount = input("What is the amount?")
    script = "SELECT * FROM Category;"
    conn.execute(script)
    print(script)
    category = input("What is the category?")
    exp_ID = "SELECT LAST ExpenseId FROM Expense);"
    date = datetime.date.today()
    script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES (exp_ID, amount, category, date);"
    conn.execute(script)
    conn.commit()
    pass

Наконец, я хочу добиться того, чтобы у пользователя запрашивалась сумма расходов, а затем - категория расходов.ExpenseID и дата должны быть добавлены автоматически.Формат даты год-месяц-день.Большое спасибо за совет.

1 Ответ

2 голосов
/ 02 мая 2019

Используйте функцию input для извлечения пользовательского ввода

user_input = input("Expense Amount: ")

Затем используйте заполнители с sqlite3

sql = "INSERT INTO TABLE (COLUMN) VALUES (?)"
conn.execute(sql, (user_input,))

** в ответ на ваше редактирование

Вам необходимо добавить заполнители вместо имен переменных.

Примерно так:

script = "INSERT INTO Expense (ExpenseId, Amount, CategoryId, Date) VALUES (?, ?, ?, ?);"
conn.execute(script, (exp_ID,amount,category,date))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...