所以我有两个.py文件,我正在尝试将database_modules.py文件中的函数加载到main.py中,但是当我尝试运行该程序时,我收到此错误:
NameError: name 'create_table' is not defined
main.py文件位于主目录中,而database_modules.py位于子目录中(modules / database_modules.py)
main.py:
import sqlite3
import datetime
from modules import database_modules
connection = sqlite3.connect('accounts.db')
cursor = connection.cursor()
create_table()
data_entry(input('Please input your name: '), hash(input('Please input your password: ')))
read_entry()
quit()
database_modules.py:
def create_table():
cursor.execute("CREATE TABLE IF NOT EXISTS accountDetails(name TEXT, password TEXT, dateCreation TEXT, accountID INT)")
def data_entry(name, password):
dateCreation = (datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))
accountID = 1
cursor.execute("INSERT INTO accountDetails (name, password, dateCreation, accountID) VALUES (?, ?, ?, ?)",
(name, password, dateCreation, accountID))
connection.commit()
def read_entry():
cursor.execute("SELECT * FROM accountDetails")
data = cursor.fetchall()
print(data)
def quit():
cursor.close()
connection.close()
提前感谢,因为我不确定如何获得这些功能,文件工作正常,直到我试图将我的代码转换为模块。
答案 0 :(得分:0)
如评论所述,您需要从导入的脚本中指定要使用的功能:database_modules.create_table
。或者,您可以使用from modules.database_modules import *
直接导入database_modules文件中的所有函数。在此之后,您只能按照自己的名义使用它们。或者只需导入您需要的from modules.database_modules import create_table
。