#python #sqlite
#python #sqlite
Вопрос:
Я пытаюсь закодировать калькулятор GPA, где сначала пользователю предоставляется выбор: создать учетную запись (создать таблицу в SQLite для хранения данных) или вставить данные (запросить данные GPA). Однако, каким-то образом, код для создания таблицы, похоже, не работает. Основываясь на приведенном ниже коде, когда я ввожу «создать учетную запись», он должен вернуться в терминал:
Подключено к sqlite успешно Таблица создана успешно
Однако, похоже, этого не происходит, вместо этого он возвращает только «Успешно подключен к sqlite», в чем проблема здесь?
import sqlite3
query = str(input("What do you want to do? (Create Account,Insert New Data) "))
sqliteConnection = sqlite3.connect("SQLite_Python_Test.db")
cursor = sqliteConnection.cursor()
sqliteConnection.commit()
print("Connected to sqlite Successfully")
if query.lower() == "create table":
try:
sqlite_query_create_table = '''CREATE TABLE gpa_calc_users_test(
id INTEGER PRIMARY KEY UNIQUE,
username TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
gpa_sem1 REAL,
gpa_sem2 REAL);'''
cursor.execute(sqlite_query_create_table)
sqliteConnection.commit()
print("Table created Successfully")
cursor.close()
except sqlite3.Error as error:
print("Error while inserting data")
finally:
if(sqliteConnection):
sqliteConnection.close()
print("SQLite connection closed")
elif query.lower() == "Insert New Data":
try:
insert_parameters = (int(input("ID: ")),str(input("Username: ")),str(input("Password:")),float(input("Semester 1 GPA: ")),float(input("Semester 2 GPA: ")))
sqlite_query_insert = '''
INSERT INTO gpa_calc_users_test
(id,username, password, gpa_sem1, gpa_sem2)
VALUES
(?,?,?,?,?)
'''
cursor.execute(sqlite_query_insert,insert_parameters)
sqliteConnection.commit()
print("Query inserted Successfully")
cursor.close()
except sqlite3.Error as error:
print("Error while inserting data")
finally:
if(sqliteConnection):
sqliteConnection.close()
print("SQLite connection closed")
Комментарии:
1. Не связано: вам не нужно
UNIQUE
с aPRIMARY KEY
— это подразумевается как PK .2. Спасибо за дополнительную помощь!
Ответ №1:
когда я ввожу «создать учетную запись», она должна вернуться в терминал:
Подключено к sqlite успешно Таблица создана успешно
Неверно. Если вводится «создать таблицу», это будет ожидаемый результат. Но если ввести «создать учетную запись», она подключится к базе данных, отобразит сообщение «подключение успешно» и завершит работу.
И черт возьми, это elif query.lower() == "Insert New Data":
никогда не может быть правдой.