Найти - Пользователи
Полная версия: Авторизация в PYQT + MYSQl + права доступа
Начало » GUI » Авторизация в PYQT + MYSQl + права доступа
1
Grau
Я только начал изучать Python и PYQT
Пытаюсь сделать GUI программу, мне нужно сделать что бы:
1.При запуске выводилось поле для ввода: базы данных (что бы можно было выбрать из списка) логин и пароль
2.В базах есть пользователи с правами доступа
3.При авторизации в базе нужно открыть меню в зависимости от прав доступа.
Подскажите пожалуйста с чего начать, вроде в голове придумал как сделать, но не как не могу реализовать в коде.
Grau
Помогите доработать код, уже перелазил весь гугл не как не могу понять как сделать сверку (логин,пароль,группа)
в БД есть таблица users поля (id,login,password,group)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QGridLayout, QMessageBox, QLabel, QPushButton, QLineEdit, QSpinBox
from PyQt5 import uic
from PyQt5.QtSql import QSqlDatabase, QSqlQuery
class Dialogo(QDialog):
    def __init__(self):
        QDialog.__init__(self)
        uic.loadUi("login.ui", self)
        self.setWindowTitle("Авторизация") # Title
        self.resize(250, 250) # Размер окна
        self.setMinimumSize(250, 150) # Минимальный размер окна
        self.setMaximumSize(250, 250) # Максимальный размер окна
        self.db_ok.clicked.connect(self.getDb) # Переход на getDb при нажатии на ОК
        self.db_cancel.clicked.connect(self.dbCancel)
  
    def getDb(self):
        useDb = self.db_combobox.currentText() # Выбор базы
        login = self.db_login.text() # Логин
        password = self.db_password.text() # Пароль
        self.db = QSqlDatabase.addDatabase('QMYSQL') # Драйвер для Mysql
        self.db.setHostName("localhost")
        self.db.setUserName("root")
        self.db.setPassword("root")
        self.db.setDatabaseName(useDb)
        self.db.open()
        query = QSqlQuery()
        query.prepare("SELECT * FROM users WHERE login = :login AND password = :password")
        query.bindValue(":login", login)
        query.bindValue(":password", password)
        query.exec_()
        if query.next():
            return True
        return False
    def dbCancel(self):
        self.close()
  
app = QApplication(sys.argv)
dialogo = Dialogo()
dialogo.show()
app.exec_()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB