Gremlin92
@Gremlin92
Ленивый и безъинициативный

Узнать количество столбцов PyMySQL5?

Делаю табличку qt, хочу чтобы можно было любую таблицу сделать для этого надо знать количество столбцов, количество строк понятно как, также заголовки столбцов таблицы,еще непонятно как разделить строку чтобы каждый столбец всунуть в ячейку
import pymysql.cursors

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot


class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'Users'
        self.left = 0
        self.top = 0
        self.width = 300
        self.height = 200
        self.initUI(print_hi())

    def initUI(self, cursor):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.createTable(cursor)

        # Add box layout, add table to box layout and add box layout to widget
        self.layout = QVBoxLayout()
        self.layout.addWidget(self.tableWidget)
        self.setLayout(self.layout)

        # Show widget
        self.show()

    def createTable(self, cursor):
        # Create table
        self.tableWidget = QTableWidget()
        self.tableWidget.setRowCount(cursor.rowcount)
        desc = cursor.description
        self.tableWidget.setColumnCount(1)
        print(desc[0][0]+'\n')
        print(desc[1][0]+'\n')
        print(desc[2][0]+'\n')
        print(desc[3][0]+'\n')
        print(desc[4][0]+'\n')
        print(desc[5][0]+'\n')
        print(desc[6][0]+'\n')
        print(desc[7][0]+'\n')
        #for(row in cursor)



        # self.tableWidget.setItem(0, 0, QTableWidgetItem("Cell (1,1)"))
        # self.tableWidget.setItem(0, 1, QTableWidgetItem("Cell (1,2)"))
        # self.tableWidget.setItem(1, 0, QTableWidgetItem("Cell (2,1)"))
        # self.tableWidget.setItem(1, 1, QTableWidgetItem("Cell (2,2)"))
        # self.tableWidget.setItem(2, 0, QTableWidgetItem("Cell (3,1)"))
        # self.tableWidget.setItem(2, 1, QTableWidgetItem("Cell (3,2)"))
        # self.tableWidget.setItem(3, 0, QTableWidgetItem("Cell (4,1)"))
        # self.tableWidget.setItem(3, 1, QTableWidgetItem("Cell (4,2)"))

        self.tableWidget.move(0, 0)

        # table selection change
        self.tableWidget.doubleClicked.connect(self.on_click)

    @pyqtSlot()
    def on_click(self):
        print("\n")
        for currentQTableWidgetItem in self.tableWidget.selectedItems():
            print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())

def print_hi():
    # Use a breakpoint in the code line below to debug your script.
    # Подключиться к базе данных.
    connection = pymysql.connect(host='185.26.122.4',
                                 user='host6491_root',
                                 password='R0oT',
                                 db='host6491_test',
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)

    print("connect successful!!")

    try:

        with connection.cursor() as cursor:

            # SQL
            sql = "SELECT * FROM `users`"

            # Выполнить команду запроса (Execute Query).
            cursor.execute(sql)

            print("cursor.description: ", cursor.description)

            print()

            for row in cursor:
                print(row)

    finally:
        # Закрыть соединение (Close connection).
        connection.close()
    return cursor

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы