Я пытаюсь передать переменную из класса в файле Python в другой файл Python, но постоянно получаю сообщение об ошибке, сообщающее, что параметры должны иметь тип списка, dict или кортежа.
Вот то, что я считаю минимальным воспроизводимым кодом.
class LoginOrReg:
customtkinter.set_appearance_mode('dark')
customtkinter.set_default_color_theme('blue')
def __init__(self, db, cursor, login_username, data):
self.db = mysql.connector.connect(host = 'yourneighbourhoodscientist.co.za', user = 'hoodscientist_hoodscientist', password= 'Kscanes3394#', database="hoodscientist_HabitTracker")
self.cursor = self.db.cursor()
self.login_username = login_username
self.data = data
def login(self):
self.login_window = customtkinter.CTk()
self.login_window.geometry('400x400')
self.login_username_entry = customtkinter.CTkEntry(self.login_window, placeholder_text ='Enter Your Username')
self.login_username_entry.pack(pady=30)
self.login_username = self.login_username_entry.get()
self.login_password_entry = customtkinter.CTkEntry(self.login_window, placeholder_text ='Enter Your Password')
self.login_password_entry.pack(pady=30)
self.login_password = self.login_password_entry.get()
self.log_user_in_button = customtkinter.CTkButton(self.login_window, text = 'Login', command = self.log_user_in).pack(pady=30)
self.reg_button = customtkinter.CTkButton(self.login_window, text = 'Register New User', command = self.reg_user).pack(pady=20)
self.login_window.mainloop()
#Logs the user in
def log_user_in(self):
self.habit = HT.HabitTracker(main_window=' ', sorting_options= ' ', sort= ' ', login= ' ')
self.cursor.execute('SELECT username AND password, COUNT(*) FROM users WHERE username=%s AND password=%s GROUP BY username',(self.login_username_entry.get(), self.login_password_entry.get()))
self.cursor.fetchall()
self.row_count = self.cursor.rowcount
if self.row_count == 1:
self.cursor.execute('SELECT userID FROM users WHERE username=%s AND password=%s',(self.login_username_entry.get(), self.login_password_entry.get()))
self.data = self.cursor.fetchone()
print(self.data)
self.user_id = self.data[0]
self.habit.main_menu(LoginOrReg)
else:
self.my_label = customtkinter.CTkLabel(self.login_window, text = "User Not Found. Please Try Again.", font=('Helvetica', 10)).pack(pady=10)
login_reg = LoginOrReg(db = " ", cursor=" ", login_username= ' ', data = ' ')
login_reg.login_or_reg(root=" ")
Здесь я создал переменную в методе log_user_in. Насколько мне известно, функция «fetchone()» возвращает список.
Здесь я пытаюсь получить доступ к этой переменной во втором файле Python, а именно HabitTracker, в классе HabitTracker< /p>
Когда я запускаю этот код, я получаю следующее сообщение об ошибке
mysql.connector.errors.ProgrammingError: Не удалось обработать параметры: str(), он должен иметь список типов, кортеж или словарь
Я пытаюсь передать переменную из класса в файле Python в другой файл Python, но постоянно получаю сообщение об ошибке, сообщающее, что параметры должны иметь тип списка, dict или кортежа. Вот то, что я считаю минимальным воспроизводимым кодом. [code]class LoginOrReg:
#Logs the user in def log_user_in(self): self.habit = HT.HabitTracker(main_window=' ', sorting_options= ' ', sort= ' ', login= ' ') self.cursor.execute('SELECT username AND password, COUNT(*) FROM users WHERE username=%s AND password=%s GROUP BY username',(self.login_username_entry.get(), self.login_password_entry.get())) self.cursor.fetchall() self.row_count = self.cursor.rowcount if self.row_count == 1: self.cursor.execute('SELECT userID FROM users WHERE username=%s AND password=%s',(self.login_username_entry.get(), self.login_password_entry.get())) self.data = self.cursor.fetchone() print(self.data) self.user_id = self.data[0] self.habit.main_menu(LoginOrReg) else: self.my_label = customtkinter.CTkLabel(self.login_window, text = "User Not Found. Please Try Again.", font=('Helvetica', 10)).pack(pady=10)
login_reg = LoginOrReg(db = " ", cursor=" ", login_username= ' ', data = ' ') login_reg.login_or_reg(root=" ") [/code] Здесь я создал переменную в методе log_user_in. Насколько мне известно, функция «fetchone()» возвращает список. Здесь я пытаюсь получить доступ к этой переменной во втором файле Python, а именно HabitTracker, в классе HabitTracker< /p> [code]class HabitTracker: def __init__(self, main_window, sorting_options, sort, login) -> None: self.main_window = main_window self.db = mysql.connector.connect(host = 'yourneighbourhoodscientist.co.za', user = 'hoodscientist_hoodscientist', password= 'Kscanes3394#', database="hoodscientist_HabitTracker") self.cursor = self.db.cursor() self.sorting_options = sorting_options self.sort = sort self.login = login
def main_menu(self, LR): import LoginOrReg as LR self.login = LR.LoginOrReg(db=' ', cursor= ' ', login_username=' ', data= ' ') self.date = datetime.today() self.main_window = customtkinter.CTk() self.main_window.geometry('1080x720') self.sorting_options = ['Daily', 'Weekly', 'Monthly', 'Highest Streak',] self.mylabel = customtkinter.CTkLabel(self.main_window, text='Welcome {}'.format(self.login.login_username), font=('Arial', 40)).pack(pady=5) self.sort = customtkinter.CTkComboBox(self.main_window, values= self.sorting_options, command= sort_by.sort_by) self.sort.set('Sort By') self.sort.pack(pady=10) self.create_new_habit_button = customtkinter.CTkButton(self.main_window, text='Create New Habit', command=create_habit.create_habit, fg_color='green').pack(pady=20) self.cursor.execute('SELECT habit_name FROM habit WHERE user_id=%s GROUP BY habit_name', (self.login.data)) self.habits = self.cursor.fetchall() self.j = 0 for j in self.habits: self.habit_button = customtkinter.CTkButton(self.main_window, text=self.habits[self.j], command=lambda k = self.habits[self.j]: edit_habit.edit_habit(k)) self.habit_button.pack(pady=10) self.j = self.j + 1 self.main_window.mainloop()
[/code] Когда я запускаю этот код, я получаю следующее сообщение об ошибке mysql.connector.errors.ProgrammingError: Не удалось обработать параметры: str(), он должен иметь список типов, кортеж или словарь
Below is the prediction code in my Google Colab environment.
import numpy as np import pandas as pd import matplotlib.pyplot as plt from datetime import timedelta from sklearn.preprocessing import MinMaxScaler from tensorflow.keras.models import...
ide – это VS
windows 11 x64
я использую IUIAutomationTreeWalker для обхода дерева
введите описание изображения здесь
введите здесь описание изображения
main:
main
пример вывода
пример
Я пытался создать exe-файл, который работал бы очень похоже на...