Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中无法从数据库获取数据_Python_Python 3.x_Database_Sqlite - Fatal编程技术网

在python中无法从数据库获取数据

在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,

我尝试从程序第一次运行时创建的数据库中获取注册数据

数据库.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()
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"))

这回答了你的问题吗?