Nov-25-2018, 06:57 PM
I am trying to check if username and password is found in the database.I am getting data from login.py.I am not getting the logic right. Any help will be appreciated.I am creating a CRUD app.User can add a product into the database after login.
.
This is the tree for the dir
├
.
This is the tree for the dir
├
── caller.py ├── employee.db ├── modules │ ├── __init__.py │ ├── __init__.pyc │ ├── login.py │ ├── login.pyc │ ├── main.py │ ├── main.pyc │ ├── signup.py │ ├── signup.pyc │ ├── user.py │ └── user.pyc ├── uis │ ├── login.ui │ ├── main.ui │ └── signup.ui └── user.dblogin.py
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'login.ui' # # Created by: PyQt4 UI code generator 4.12.1 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName(_fromUtf8("Dialog")) Dialog.resize(400, 180) self.gridLayout = QtGui.QGridLayout(Dialog) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 4, 1, 1, 1) self.label_2 = QtGui.QLabel(Dialog) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1) self.signupbutton = QtGui.QPushButton(Dialog) self.signupbutton.setObjectName(_fromUtf8("signupbutton")) self.gridLayout.addWidget(self.signupbutton, 4, 3, 1, 1) self.label = QtGui.QLabel(Dialog) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.loginbutton = QtGui.QPushButton(Dialog) self.loginbutton.setObjectName(_fromUtf8("loginbutton")) self.gridLayout.addWidget(self.loginbutton, 4, 2, 1, 1) self.passs = QtGui.QLineEdit(Dialog) self.passs.setObjectName(_fromUtf8("passs")) self.gridLayout.addWidget(self.passs, 1, 1, 1, 3) self.user = QtGui.QLineEdit(Dialog) self.user.setObjectName(_fromUtf8("user")) self.gridLayout.addWidget(self.user, 0, 1, 1, 3) self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): Dialog.setWindowTitle(_translate("Dialog", "Dialog", None)) self.label_2.setText(_translate("Dialog", "Password", None)) self.signupbutton.setText(_translate("Dialog", "Signup", None)) self.label.setText(_translate("Dialog", "Username", None)) self.loginbutton.setText(_translate("Dialog", "Login", None)) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) Dialog = QtGui.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())signup.py :
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'signup.ui' # # Created by: PyQt4 UI code generator 4.12.1 # # WARNING! All changes made in this file will be lost! import sys from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName(_fromUtf8("Dialog")) Dialog.resize(400, 252) self.gridLayout = QtGui.QGridLayout(Dialog) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.textEdit = QtGui.QTextEdit(Dialog) self.textEdit.setObjectName(_fromUtf8("textEdit")) self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 2) self.label = QtGui.QLabel(Dialog) self.label.setObjectName(_fromUtf8("label")) self.gridLayout.addWidget(self.label, 1, 0, 1, 1) self.name = QtGui.QLineEdit(Dialog) self.name.setObjectName(_fromUtf8("name")) self.gridLayout.addWidget(self.name, 1, 1, 1, 1) self.label_3 = QtGui.QLabel(Dialog) self.label_3.setObjectName(_fromUtf8("label_3")) self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1) self.contact = QtGui.QLineEdit(Dialog) self.contact.setObjectName(_fromUtf8("contact")) self.gridLayout.addWidget(self.contact, 2, 1, 1, 1) self.label_2 = QtGui.QLabel(Dialog) self.label_2.setObjectName(_fromUtf8("label_2")) self.gridLayout.addWidget(self.label_2, 3, 0, 1, 1) self.password = QtGui.QLineEdit(Dialog) self.password.setObjectName(_fromUtf8("password")) self.gridLayout.addWidget(self.password, 3, 1, 1, 1) self.label_4 = QtGui.QLabel(Dialog) self.label_4.setObjectName(_fromUtf8("label_4")) self.gridLayout.addWidget(self.label_4, 4, 0, 1, 1) self.email = QtGui.QLineEdit(Dialog) self.email.setObjectName(_fromUtf8("email")) self.gridLayout.addWidget(self.email, 4, 1, 1, 1) self.signupbutton = QtGui.QPushButton(Dialog) self.signupbutton.setObjectName(_fromUtf8("signupbutton")) self.gridLayout.addWidget(self.signupbutton, 5, 1, 1, 1) self.retranslateUi(Dialog) QtCore.QMetaObject.connectSlotsByName(Dialog) def retranslateUi(self, Dialog): Dialog.setWindowTitle(_translate("Dialog", "Dialog", None)) self.textEdit.setHtml(_translate("Dialog", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n" "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n" "p, li { white-space: pre-wrap; }\n" "</style></head><body style=\" font-family:\'.SF NS Text\'; font-size:13pt; font-weight:400; font-style:normal;\">\n" "<p align=\"center\" style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\">SignUp Details</p></body></html>", None)) self.label.setText(_translate("Dialog", "Name", None)) self.label_3.setText(_translate("Dialog", "Contact", None)) self.label_2.setText(_translate("Dialog", "Password", None)) self.label_4.setText(_translate("Dialog", "Email", None)) self.signupbutton.setText(_translate("Dialog", "Signup", None)) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) Dialog = QtGui.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_())main.py:
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'main.ui' # # Created by: PyQt4 UI code generator 4.12.1 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig) class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(1280, 671) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.gridLayout = QtGui.QGridLayout(self.centralwidget) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.tabWidget = QtGui.QTabWidget(self.centralwidget) font = QtGui.QFont() font.setStrikeOut(False) self.tabWidget.setFont(font) self.tabWidget.setUsesScrollButtons(True) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab_3 = QtGui.QWidget() self.tab_3.setObjectName(_fromUtf8("tab_3")) self.addproduct_groupBox = QtGui.QGroupBox(self.tab_3) self.addproduct_groupBox.setGeometry(QtCore.QRect(9, -1, 741, 231)) self.addproduct_groupBox.setObjectName(_fromUtf8("addproduct_groupBox")) self.addproduct_button = QtGui.QPushButton(self.addproduct_groupBox) self.addproduct_button.setGeometry(QtCore.QRect(210, 200, 113, 32)) self.addproduct_button.setObjectName(_fromUtf8("addproduct_button")) self.layoutWidget = QtGui.QWidget(self.addproduct_groupBox) self.layoutWidget.setGeometry(QtCore.QRect(20, 40, 611, 147)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.gridLayout_6 = QtGui.QGridLayout(self.layoutWidget) self.gridLayout_6.setMargin(0) self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6")) self.product_name_5 = QtGui.QLabel(self.layoutWidget) self.product_name_5.setObjectName(_fromUtf8("product_name_5")) self.gridLayout_6.addWidget(self.product_name_5, 0, 0, 1, 1) self.pname_lineEdit_5 = QtGui.QLineEdit(self.layoutWidget) self.pname_lineEdit_5.setObjectName(_fromUtf8("pname_lineEdit_5")) self.gridLayout_6.addWidget(self.pname_lineEdit_5, 0, 1, 1, 1) self.starting_inventory_5 = QtGui.QLabel(self.layoutWidget) self.starting_inventory_5.setObjectName(_fromUtf8("starting_inventory_5")) self.gridLayout_6.addWidget(self.starting_inventory_5, 1, 0, 1, 1) self.sinventory_lineEdit_5 = QtGui.QLineEdit(self.layoutWidget) self.sinventory_lineEdit_5.setObjectName(_fromUtf8("sinventory_lineEdit_5")) self.gridLayout_6.addWidget(self.sinventory_lineEdit_5, 1, 1, 1, 1) self.inventory_required_5 = QtGui.QLabel(self.layoutWidget) self.inventory_required_5.setObjectName(_fromUtf8("inventory_required_5")) self.gridLayout_6.addWidget(self.inventory_required_5, 2, 0, 1, 1) self.ireceived_lineEdit_5 = QtGui.QLineEdit(self.layoutWidget) self.ireceived_lineEdit_5.setObjectName(_fromUtf8("ireceived_lineEdit_5")) self.gridLayout_6.addWidget(self.ireceived_lineEdit_5, 2, 1, 1, 1) self.inventory_on_hand_5 = QtGui.QLabel(self.layoutWidget) self.inventory_on_hand_5.setObjectName(_fromUtf8("inventory_on_hand_5")) self.gridLayout_6.addWidget(self.inventory_on_hand_5, 3, 0, 1, 1) self.ihand_lineEdit_5 = QtGui.QLineEdit(self.layoutWidget) self.ihand_lineEdit_5.setObjectName(_fromUtf8("ihand_lineEdit_5")) self.gridLayout_6.addWidget(self.ihand_lineEdit_5, 3, 1, 1, 1) self.minimum_required_5 = QtGui.QLabel(self.layoutWidget) self.minimum_required_5.setObjectName(_fromUtf8("minimum_required_5")) self.gridLayout_6.addWidget(self.minimum_required_5, 4, 0, 1, 1) self.mrequired_lineEdit_5 = QtGui.QLineEdit(self.layoutWidget) self.mrequired_lineEdit_5.setObjectName(_fromUtf8("mrequired_lineEdit_5")) self.gridLayout_6.addWidget(self.mrequired_lineEdit_5, 4, 1, 1, 1) self.label_5 = QtGui.QLabel(self.tab_3) self.label_5.setGeometry(QtCore.QRect(100, 240, 91, 16)) self.label_5.setObjectName(_fromUtf8("label_5")) self.products_table = QtGui.QTableWidget(self.tab_3) self.products_table.setGeometry(QtCore.QRect(50, 270, 641, 192)) self.products_table.viewport().setProperty("cursor", QtGui.QCursor(QtCore.Qt.ArrowCursor)) self.products_table.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn) self.products_table.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn) self.products_table.setAlternatingRowColors(True) self.products_table.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) self.products_table.setRowCount(3) self.products_table.setColumnCount(6) self.products_table.setObjectName(_fromUtf8("products_table")) self.deleteproduct_button = QtGui.QPushButton(self.tab_3) self.deleteproduct_button.setGeometry(QtCore.QRect(210, 490, 113, 32)) self.deleteproduct_button.setObjectName(_fromUtf8("deleteproduct_button")) self.updateproduct_button = QtGui.QPushButton(self.tab_3) self.updateproduct_button.setGeometry(QtCore.QRect(372, 490, 131, 32)) self.updateproduct_button.setObjectName(_fromUtf8("updateproduct_button")) self.tabWidget.addTab(self.tab_3, _fromUtf8("")) self.tab_4 = QtGui.QWidget() self.tab_4.setObjectName(_fromUtf8("tab_4")) self.gridLayout_2 = QtGui.QGridLayout(self.tab_4) self.gridLayout_2.setMargin(0) self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2")) self.label_8 = QtGui.QLabel(self.tab_4) self.label_8.setObjectName(_fromUtf8("label_8")) self.gridLayout_2.addWidget(self.label_8, 3, 0, 1, 1) self.email_lineEdit = QtGui.QLineEdit(self.tab_4) self.email_lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) self.email_lineEdit.setObjectName(_fromUtf8("email_lineEdit")) self.gridLayout_2.addWidget(self.email_lineEdit, 3, 1, 1, 1) self.mypassword_lineEdit = QtGui.QLineEdit(self.tab_4) self.mypassword_lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) self.mypassword_lineEdit.setObjectName(_fromUtf8("mypassword_lineEdit")) self.gridLayout_2.addWidget(self.mypassword_lineEdit, 1, 1, 1, 1) self.label_7 = QtGui.QLabel(self.tab_4) self.label_7.setObjectName(_fromUtf8("label_7")) self.gridLayout_2.addWidget(self.label_7, 2, 0, 1, 1) self.contact_lineEdit = QtGui.QLineEdit(self.tab_4) self.contact_lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) self.contact_lineEdit.setObjectName(_fromUtf8("contact_lineEdit")) self.gridLayout_2.addWidget(self.contact_lineEdit, 2, 1, 1, 1) self.myname_lineEdit = QtGui.QLineEdit(self.tab_4) self.myname_lineEdit.setMaximumSize(QtCore.QSize(200, 16777215)) self.myname_lineEdit.setObjectName(_fromUtf8("myname_lineEdit")) self.gridLayout_2.addWidget(self.myname_lineEdit, 0, 1, 1, 1) self.label_6 = QtGui.QLabel(self.tab_4) self.label_6.setObjectName(_fromUtf8("label_6")) self.gridLayout_2.addWidget(self.label_6, 1, 0, 1, 1) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.gridLayout_2.addItem(spacerItem, 4, 1, 1, 1) self.label = QtGui.QLabel(self.tab_4) self.label.setObjectName(_fromUtf8("label")) self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1) spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.gridLayout_2.addItem(spacerItem1, 1, 2, 1, 1) self.tabWidget.addTab(self.tab_4, _fromUtf8("")) self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 22)) self.menubar.setObjectName(_fromUtf8("menubar")) MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.addproduct_groupBox.setTitle(_translate("MainWindow", "Add Product", None)) self.addproduct_button.setText(_translate("MainWindow", "Add Product", None)) self.product_name_5.setText(_translate("MainWindow", "Product Name", None)) self.starting_inventory_5.setText(_translate("MainWindow", "Starting Inventory", None)) self.inventory_required_5.setText(_translate("MainWindow", "Inventory Received", None)) self.inventory_on_hand_5.setText(_translate("MainWindow", "Inventory on hand", None)) self.minimum_required_5.setText(_translate("MainWindow", "Minimum Required", None)) self.label_5.setText(_translate("MainWindow", "All Products", None)) self.deleteproduct_button.setText(_translate("MainWindow", "Delete Product", None)) self.updateproduct_button.setText(_translate("MainWindow", "Update Product", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Welcome", None)) self.label_8.setText(_translate("MainWindow", "Email", None)) self.label_7.setText(_translate("MainWindow", "Contact", None)) self.label_6.setText(_translate("MainWindow", "My Password", None)) self.label.setText(_translate("MainWindow", "My Name", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "My Profile", None)) if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())user.py:
import sqlalchemy from sqlalchemy import exists from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' user_id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True) name = sqlalchemy.Column(sqlalchemy.String(35), nullable=False) password = sqlalchemy.Column(sqlalchemy.String(35), nullable=False) email = sqlalchemy.Column(sqlalchemy.String(35)) contact = sqlalchemy.Column(sqlalchemy.String(50)) def __repr__(self): return "<User(name='%s',password='%s',contact='%s', email='%s')>" % (self.name,self.password,self.contact, self.email) engine = sqlalchemy.create_engine("sqlite:///user.db", echo='debug') Base.metadata.create_all(engine) DBsession = sqlalchemy.orm.sessionmaker(bind=engine) session = DBsession() def search(self,username,password): row = session.query(User).filter(User.name==username, User.password==password).first() if not row: return False else: return Truecaller.py:
from modules.main import * from modules.login import Ui_Dialog as Ui_login from modules.signup import Ui_Dialog as Ui_signup from modules.user import User,session,sqlalchemy,engine,DBsession from PyQt4.QtGui import * from PyQt4.QtCore import * import sys #user_data = User('user.db') class Signup(QDialog,Ui_signup): def __init__(self,parent=None): QDialog.__init__(self,parent) self.setupUi(self) self.signupbutton.clicked.connect(self.addUser) def addUser(self): name = str(self.name.text()) password = str(self.password.text()) email = str(self.email.text()) contact = str(self.contact.text()) session.add(User(name=name, email=email,contact=contact,password=password)) session.commit() class Login(QDialog,Ui_login): def __init__(self,parent=None): QDialog.__init__(self,parent) self.setupUi(self) self.loginbutton.clicked.connect(self.checkval) self.signupbutton.clicked.connect(self.generatesignup) def checkval(self): username = str(self.user.text()) password = str(self.passs.text()) def generatesignup(self): signupobj=Signup() signupobj.exec_() class MainWindow(QMainWindow,Ui_MainWindow): def __init__(self,parent=None): QMainWindow.__init__(self,parent) self.setupUi(self) self.checklogin() def checklogin(self): loginobj = Login() loginobj.exec_() if __name__ == '__main__': app=QApplication(sys.argv) screen_resolution =app.desktop().screenGeometry() width,height=screen_resolution.width(),screen_resolution.height() w = MainWindow() w.resize(width,height) w.show() sys.exit(app.exec_())