uiフォームをmysqlに接続し、uiフォームを使用してデータを挿入するにはどうすればよいですか?

アンソニー・ガウポ

PyQtフォームをMySqlデータベースに接続しようとしています。次のコードを使用してデータベースに接続し、データを挿入しようとしましたが、機能しません。私が逃したものはありますか?属性エラーが発生します__enter__これは何を意味するのでしょうか?

from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
from PyQt5.QtCore    import pyqtSlot
import mysql.connector as mdb

from mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.btnAdd.clicked.connect(self.InsertData)

    @pyqtSlot() 
    def InsertData(self):
        con = mdb.connect(user='root', password='password101',
                        host='localhost', database='sample_sys')
        with con:
            cur = con.cursor()

            cur.execute("INSERT INTO name_info(name, age)"
                        "VALUES('%s','%s')" % (''.join(self.le_name.text()),
                                                ''.join(self.le_age.text())))
            QMessageBox.information(self, "Connection", "Data Inserted Successfully")
            self.close()


if __name__ == "__main__":
    import sys

    app = QApplication(sys.argv)
    MainWindow = MainWindow()

    MainWindow.show()
    sys.exit(app.exec_())

前もって感謝します!

S.ニック

私はMySQLdbを使用していますが、すべてが機能します。MySQLdbは、PythonデータベースAPIを提供する一般的なMySQLデータベースサーバーへのスレッド互換インターフェイスです。

from PyQt5.QtWidgets import QMainWindow, QApplication, QMessageBox
from PyQt5.QtCore    import pyqtSlot
#import mysql.connector as mdb
import MySQLdb as mdb

from mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)
        self.button.setEnabled(False)

        self.initWindow()

    def initWindow(self):
        self.lineedit1.setPlaceholderText('Please enter your name')
        self.lineedit2.setPlaceholderText('Please enter your email')
        self.lineedit3.setPlaceholderText('Please enter your phone number')

        self.lineedit1.textChanged.connect(self.newText)
        self.lineedit2.textChanged.connect(self.newText)
        self.lineedit3.textChanged.connect(self.newText)

        self.button.clicked.connect(self.InsertData)

    @pyqtSlot() 
    def InsertData(self):
        con = mdb.connect(host="localhost",user="user", passwd="password",db="testdb")

        with con:
            cur = con.cursor()  
            cur.execute('''INSERT INTO pyqt5data(name, email, phone)
                           VALUES (%s, %s, %s)''', 
                           ( self.lineedit1.text(),
                             self.lineedit2.text(),
                             self.lineedit3.text() )
                       )            
            cur.close()

            QMessageBox.information(self, "Connection", "Data Inserted Successfully")

        self.lineedit1.setText('')
        self.lineedit2.setText('')
        self.lineedit3.setText('')
        self.initWindow()       

    def newText(self):
        if self.lineedit1.text() and self.lineedit2.text() and self.lineedit3.text():
            self.button.setEnabled(True)
        else:
            self.button.setEnabled(False)


if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    MainWindow = MainWindow()
    MainWindow.show()
    sys.exit(app.exec_())

mainwindow.py

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'mainwindow.ui'
#
# Created by: PyQt5 UI code generator 5.10
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(400, 300)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(40, 30, 81, 16))
        self.label.setObjectName("label")
        self.lineedit1 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineedit1.setGeometry(QtCore.QRect(140, 30, 171, 20))
        self.lineedit1.setObjectName("lineedit1")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(40, 70, 81, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(40, 110, 81, 16))
        self.label_3.setObjectName("label_3")
        self.lineedit2 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineedit2.setGeometry(QtCore.QRect(140, 70, 171, 20))
        self.lineedit2.setObjectName("lineedit2")
        self.lineedit3 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineedit3.setGeometry(QtCore.QRect(140, 110, 171, 20))
        self.lineedit3.setObjectName("lineedit3")
        self.button = QtWidgets.QPushButton(self.centralwidget)
        self.button.setGeometry(QtCore.QRect(94, 170, 181, 23))
        self.button.setObjectName("button")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 400, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "Name"))
        self.label_2.setText(_translate("MainWindow", "Email"))
        self.label_3.setText(_translate("MainWindow", "Phone"))
        self.button.setText(_translate("MainWindow", "INSERT"))

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

フォームを使用してH2データベースにデータを挿入するにはどうすればよいですか

分類Dev

フォームをajaxに接続して投稿するにはどうすればよいですか?

分類Dev

AngularJS UI Bootstrapツールチップを使用してフォーム入力エラーを表示するにはどうすればよいですか?

分類Dev

React Redux-入力を追加できるmaterial-uiを使用してフォームを作成するにはどうすればよいですか?

分類Dev

ダムフォンをラップトップに接続してデータを転送するにはどうすればよいですか?

分類Dev

フォームとビューを使用してdjango動的フォームセットデータを保存するにはどうすればよいですか?

分類Dev

htmlフォームからmysqlデータベースにデータを挿入するにはどうすればよいですか2

分類Dev

ループフォームを使用してデータ行を保存してdjangoにデータを保存するにはどうすればよいですか?

分類Dev

作成したフォームから製品テーブルにデータを挿入するにはどうすればよいですか?

分類Dev

PHPのHTMLフォームからの入力値を処理してMySQLクエリに挿入するにはどうすればよいですか?

分類Dev

React J を使用してフォームの動的入力データを取得するにはどうすればよいですか?

分類Dev

フォームの数値入力を変数データとして使用するにはどうすればよいですか?

分類Dev

PHPを使用してフォームデータでSQLデータベースを更新するにはどうすればよいですか?

分類Dev

Rを使用してデータフレームに動的に値を挿入するにはどうすればよいですか?

分類Dev

フォームでGoogleScriptエディターを使用して回答者のメールを収集し、回答としてシートに挿入するにはどうすればよいですか?

分類Dev

一度に複数のフォームデータをangularjsを使用してサーバーに送信するにはどうすればよいですか?

分類Dev

さまざまなフォームを使用してリストをデータフレームに挿入するにはどうすればよいですか?

分類Dev

フォームを表示して続行するにはどうすればよいですか?

分類Dev

フォームに情報を送信した後、SetStateを使用してデータを取得するにはどうすればよいですか?

分類Dev

Javascriptを使用してフォームデータを別のページのテーブルに保存するにはどうすればよいですか?

分類Dev

角度を使用してフォームデータをサーバーに送信するにはどうすればよいですか?

分類Dev

PHPを使用してフォームデータをメッセージとして送信するにはどうすればよいですか?

分類Dev

javascriptを使用してフォームを動的に作成するにはどうすればよいですか?

分類Dev

Nativebaseを使用してフォームを非表示にするにはどうすればよいですか?

分類Dev

Flurlを使用してファイルとフォームデータをアップロードするにはどうすればよいですか?

分類Dev

アクセント記号éをSymfony2のフォームに挿入するときに、mysqlデータベースにéとして保存するにはどうすればよいですか?

分類Dev

アクセント記号éをSymfony2のフォームに挿入するときに、mysqlデータベースにéとして保存するにはどうすればよいですか?

分類Dev

RailsでHTMLフォームデータをメールとして送信するにはどうすればよいですか?(宝石を使用せずに)

分類Dev

MSAccessフォームで、連続フォームを使用して、データグループ化によって代替の行の色を取得するにはどうすればよいですか?

Related 関連記事

  1. 1

    フォームを使用してH2データベースにデータを挿入するにはどうすればよいですか

  2. 2

    フォームをajaxに接続して投稿するにはどうすればよいですか?

  3. 3

    AngularJS UI Bootstrapツールチップを使用してフォーム入力エラーを表示するにはどうすればよいですか?

  4. 4

    React Redux-入力を追加できるmaterial-uiを使用してフォームを作成するにはどうすればよいですか?

  5. 5

    ダムフォンをラップトップに接続してデータを転送するにはどうすればよいですか?

  6. 6

    フォームとビューを使用してdjango動的フォームセットデータを保存するにはどうすればよいですか?

  7. 7

    htmlフォームからmysqlデータベースにデータを挿入するにはどうすればよいですか2

  8. 8

    ループフォームを使用してデータ行を保存してdjangoにデータを保存するにはどうすればよいですか?

  9. 9

    作成したフォームから製品テーブルにデータを挿入するにはどうすればよいですか?

  10. 10

    PHPのHTMLフォームからの入力値を処理してMySQLクエリに挿入するにはどうすればよいですか?

  11. 11

    React J を使用してフォームの動的入力データを取得するにはどうすればよいですか?

  12. 12

    フォームの数値入力を変数データとして使用するにはどうすればよいですか?

  13. 13

    PHPを使用してフォームデータでSQLデータベースを更新するにはどうすればよいですか?

  14. 14

    Rを使用してデータフレームに動的に値を挿入するにはどうすればよいですか?

  15. 15

    フォームでGoogleScriptエディターを使用して回答者のメールを収集し、回答としてシートに挿入するにはどうすればよいですか?

  16. 16

    一度に複数のフォームデータをangularjsを使用してサーバーに送信するにはどうすればよいですか?

  17. 17

    さまざまなフォームを使用してリストをデータフレームに挿入するにはどうすればよいですか?

  18. 18

    フォームを表示して続行するにはどうすればよいですか?

  19. 19

    フォームに情報を送信した後、SetStateを使用してデータを取得するにはどうすればよいですか?

  20. 20

    Javascriptを使用してフォームデータを別のページのテーブルに保存するにはどうすればよいですか?

  21. 21

    角度を使用してフォームデータをサーバーに送信するにはどうすればよいですか?

  22. 22

    PHPを使用してフォームデータをメッセージとして送信するにはどうすればよいですか?

  23. 23

    javascriptを使用してフォームを動的に作成するにはどうすればよいですか?

  24. 24

    Nativebaseを使用してフォームを非表示にするにはどうすればよいですか?

  25. 25

    Flurlを使用してファイルとフォームデータをアップロードするにはどうすればよいですか?

  26. 26

    アクセント記号éをSymfony2のフォームに挿入するときに、mysqlデータベースにéとして保存するにはどうすればよいですか?

  27. 27

    アクセント記号éをSymfony2のフォームに挿入するときに、mysqlデータベースにéとして保存するにはどうすればよいですか?

  28. 28

    RailsでHTMLフォームデータをメールとして送信するにはどうすればよいですか?(宝石を使用せずに)

  29. 29

    MSAccessフォームで、連続フォームを使用して、データグループ化によって代替の行の色を取得するにはどうすればよいですか?

ホットタグ

アーカイブ