def login_in(self): account = self.ui.lineEdit_L_account.text() password = self.ui.lineEdit_L_password.text() account_list = [] password_list = [] conn = pymysql.connect( user='root', pa
时间: 2024-02-15 21:28:35 浏览: 26
我理解你的问题是询问关于给定的代码段中的 pymysql 连接的使用方式。这是一个用于 Python 的 MySQL 数据库的库。该代码段中,使用 pymysql.connect() 函数连接数据库,其中需要提供用户名和密码等信息。具体来说,该函数接受以下参数:
- host: 数据库服务器主机名,默认为本地主机。
- port: 数据库服务器端口号,默认为 3306。
- user: 数据库用户名。
- password: 数据库用户密码。
- database: 数据库名称。
- charset: 数据库字符集,默认为 utf8mb4。
- cursorclass: 游标类,默认为 pymysql.cursors.Cursor。
在该代码段中,除了用户名和密码外,其他信息使用了默认值,因此只需要提供用户名和密码即可连接到 MySQL 数据库。
相关问题
def login_in(self, MainWindow=None): account = self.ui.lineEdit_L_account.text() password = self.ui.lineEdit_L_password.text() account_list = [] password_list = [] conn = pymysql.connect( user='root', password='796691xjl@', host='127.0.0.1', database='mysql', port=3306 ) cur = conn.cursor() cur.execute("SELECT * FROM films.manger") rows = cur.fetchall() for row in rows: account_list.append(row[0]) password_list.append(row[1]) print(account_list, password_list) conn.commit() conn.close() for i in range(len(account_list)): if len(account) == 0 or len(password) == 0: self.ui.stackedWidget.setCurrentIndex(1) elif account == account_list[i] and password == password_list[i]: global manger_now manger_now = account self.win = MainWindow() self.close() else: self.ui.stackedWidget.setCurrentIndex(2)密码输入对了也错
这段代码是一个用户登录的函数。它首先获取用户在界面中输入的账号和密码,然后连接到MySQL数据库中的films库中的manger表,并通过执行SELECT语句来获取所有账号和密码。接着,它将这些账号和密码分别存储到account_list和password_list两个列表中。最后,它通过循环比较输入的账号和密码是否与列表中的账号和密码匹配,如果匹配则将当前登录用户保存到全局变量manger_now中,并打开MainWindow窗口,否则在界面中提示用户输入有误。
根据你的问题,我猜测你想问的是:为什么在输入正确的密码后也会跳转到错误界面。
这个问题可能是由于在比较账号和密码时没有考虑到列表中的项数,导致在最后一项比较失败后,会直接跳转到错误界面。为了避免这种情况,可以将最后一次比较和跳转操作放到循环外面,这样只有在所有项都比较完后,才能确定账号和密码输入是否正确。代码示例如下:
```
for i in range(len(account_list)):
if account == account_list[i] and password == password_list[i]:
global manger_now
manger_now = account
self.win = MainWindow()
self.close()
break # 添加 break 语句,跳出循环
if manger_now is None: # 在循环外面判断账号和密码是否输入正确
self.ui.stackedWidget.setCurrentIndex(2)
```
import sys from PyQt5.QtWidgets import QApplication, QWidget , QMainWindow from Calui1 import Ui_Form class Mywindow(QWidget,Ui_Form): def __init__(self): super(Mywindow,self).__init__() self.setupUi(self) def btnClear_clicked(self): self.lineEdit.clear() def btn1(self): self.lineEdit.insert("1") def btn2(self): self.lineEdit.insert("2") def btn3(self): self.lineEdit.insert("3") def btn4(self): self.lineEdit.insert("4") def btn5(self): self.lineEdit.insert("5") def btn6(self): self.lineEdit.insert("6") def btn7(self): self.lineEdit.insert("7") def btn8(self): self.lineEdit.insert("8") def btn9(self): self.lineEdit.insert("9") def btn0(self): self.lineEdit.insert("0") def btn_plus(self): self.lineEdit.insert("+") def btn_sub(self): self.lineEdit.insert("-") def btn_mul(self): self.lineEdit.insert("*") def btn_div(self): self.lineEdit.insert("/") def btnequal(self): text=self.lineEdit.text() self.lineEdit.insert("= %.2f" %(eval(text))) if __name__=='__main__': app=QApplication(sys.argv) win=Mywindow() win.pushButton_7.clicked.connect(win.btnClear_clicked()) win.pushButton.clicked.connect(win.btn1()) win.pushButton_2.clicked.connect(win.btn2()) win.pushButton_3.clicked.connect(win.btn3()) win.pushButton_4.clicked.connect(win.btn_plus()) win.pushButton_5.clicked.connect(win.btn4()) win.pushButton_6.clicked.connect(win.btn7()) win.pushButton_8.clicked.connect(win.btn5()) win.pushButton_9.clicked.connect(win.btn8()) win.pushButton_10.clicked.connect(win.btn0()) win.pushButton_11.clicked.connect(win.btn6()) win.pushButton_12.clicked.connect(win.btn9()) win.pushButton_13.clicked.connect(win.btnequal()) win.pushButton_14.clicked.connect(win.btn_sub()) win.pushButton_15.clicked.connect(win.btn_mul()) win.pushButton_16.clicked.connect(win.btn_div()) win.show() sys.exit(app.exec_())错在哪
你忘记了在导入模块时使用逗号分隔,应该改为:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow
from Calui1 import Ui_Form
class Mywindow(QWidget,Ui_Form):
def __init__(self):
super(Mywindow,self).__init__()
self.setupUi(self)
def btnClear_clicked(self):
self.lineEdit.clear()
def btn1(self):
self.lineEdit.insert("1")
def btn2(self):
self.lineEdit.insert("2")
def btn3(self):
self.lineEdit.insert("3")
def btn4(self):
self.lineEdit.insert("4")
def btn5(self):
self.lineEdit.insert("5")
def btn6(self):
self.lineEdit.insert("6")
def btn7(self):
self.lineEdit.insert("7")
def btn8(self):
self.lineEdit.insert("8")
def btn9(self):
self.lineEdit.insert("9")
def btn0(self):
self.lineEdit.insert("0")
def btn_plus(self):
self.lineEdit.insert("+")
def btn_sub(self):
self.lineEdit.insert("-")
def btn_mul(self):
self.lineEdit.insert("*")
def btn_div(self):
self.lineEdit.insert("/")
def btnequal(self):
text=self.lineEdit.text()
self.lineEdit.insert("= %.2f" %(eval(text)))
if __name__=='__main__':
app=QApplication(sys.argv)
win=Mywindow()
win.pushButton_7.clicked.connect(win.btnClear_clicked)
win.pushButton.clicked.connect(win.btn1)
win.pushButton_2.clicked.connect(win.btn2)
win.pushButton_3.clicked.connect(win.btn3)
win.pushButton_4.clicked.connect(win.btn_plus)
win.pushButton_5.clicked.connect(win.btn4)
win.pushButton_6.clicked.connect(win.btn7)
win.pushButton_8.clicked.connect(win.btn5)
win.pushButton_9.clicked.connect(win.btn8)
win.pushButton_10.clicked.connect(win.btn0)
win.pushButton_11.clicked.connect(win.btn6)
win.pushButton_12.clicked.connect(win.btn9)
win.pushButton_13.clicked.connect(win.btnequal)
win.pushButton_14.clicked.connect(win.btn_sub)
win.pushButton_15.clicked.connect(win.btn_mul)
win.pushButton_16.clicked.connect(win.btn_div)
win.show()
sys.exit(app.exec_())
```