在python中无法从数据库获取数据
我尝试从程序第一次运行时创建的数据库中获取注册数据 数据库.py在python中无法从数据库获取数据,python,python-3.x,database,sqlite,Python,Python 3.x,Database,Sqlite,我尝试从程序第一次运行时创建的数据库中获取注册数据 数据库.py import sqlite3 CREATE_TABLE = """CREATE TABLE IF NOT EXISTS college ( id INTEGER PRIMARY KEY, FirstName TEXT,
import sqlite3
CREATE_TABLE = """CREATE TABLE IF NOT EXISTS college (
id INTEGER PRIMARY KEY,
FirstName TEXT,
SecondName TEXT,
Position TEXT);"""
INSERT_DATA = "INSERT INTO college (FirstName, SecondName, Position) VALUES (?, ?, ?);"
DISPLAY_DATA = "SELECT * FROM college WHERE Position = ?;"
def connect():
return sqlite3.connect('databas.db')
def create_table(connection):
with connection:
connection.execute(CREATE_TABLE)
def insert_data(connection, FirstName, SecondName, Position):
with connection:
connection.execute(INSERT_DATA, (FirstName, SecondName, Position))
def request_data(connection, position):
with connection:
return connection.execute(DISPLAY_DATA, (position,)).fetchall()
import database
API_MENU = """
--- Student Database ---
1) Register new student
2) Delete
3) Show students
4) Register new staff
5) Delete
6) Show staff
7) >> Quit the program
Your choice: """
def main():
connection = database.connect()
database.create_table(connection)
while (choice := input(API_MENU)) != "7":
if choice == "1":
FirstName = "Julius"
SecondName = "Jessie"
Position = "Student"
database.insert_data(connection, FirstName, SecondName, Position)
elif choice == "2":
database.request_data(connection, "Student")
elif choice == "3":
pass
elif choice == "4":
pass
elif choice == "5":
pass
elif choice == "6":
pass
else:
print("Invalid input, please try again!")
main()
api.py
import sqlite3
CREATE_TABLE = """CREATE TABLE IF NOT EXISTS college (
id INTEGER PRIMARY KEY,
FirstName TEXT,
SecondName TEXT,
Position TEXT);"""
INSERT_DATA = "INSERT INTO college (FirstName, SecondName, Position) VALUES (?, ?, ?);"
DISPLAY_DATA = "SELECT * FROM college WHERE Position = ?;"
def connect():
return sqlite3.connect('databas.db')
def create_table(connection):
with connection:
connection.execute(CREATE_TABLE)
def insert_data(connection, FirstName, SecondName, Position):
with connection:
connection.execute(INSERT_DATA, (FirstName, SecondName, Position))
def request_data(connection, position):
with connection:
return connection.execute(DISPLAY_DATA, (position,)).fetchall()
import database
API_MENU = """
--- Student Database ---
1) Register new student
2) Delete
3) Show students
4) Register new staff
5) Delete
6) Show staff
7) >> Quit the program
Your choice: """
def main():
connection = database.connect()
database.create_table(connection)
while (choice := input(API_MENU)) != "7":
if choice == "1":
FirstName = "Julius"
SecondName = "Jessie"
Position = "Student"
database.insert_data(connection, FirstName, SecondName, Position)
elif choice == "2":
database.request_data(connection, "Student")
elif choice == "3":
pass
elif choice == "4":
pass
elif choice == "5":
pass
elif choice == "6":
pass
else:
print("Invalid input, please try again!")
main()
在我使用选项1注册数据后,我不会被返回任何数据。当运行代码并选择选项1时,您应该输入姓名、姓氏和职位(学生/员工),然后将其写入数据库(我刚刚定义了字符串以便将代码放在这里),然后选择选项2应该返回包含“学生”的数据但是,作为一个位置,它不会返回任何数据。问题在于,我只是疏忽了实际使用函数print()来显示数据
database.request_data(connection, "Student")
上面的行应该是:
print(database.request_data(connection, "Student"))
这回答了你的问题吗?