LINUX.ORG.RU

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

 ,


0

1

Делаю табличку 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_())

Ответ на: комментарий от bad_master

нууу, ты данные от хоста скинул с кодом xD
советую забыть про этот ip, так как он скорее всего уже был проиндексирован как leak в соответствующих сервисах)

noname_user ★★★ ()
Последнее исправление: noname_user (всего исправлений: 1)
Ответ на: комментарий от bad_master

не дерзи, то что ты слился это уже давно всем ясно, не рассказывай про 1 селект никому больше когда ты пишешь явно свои креды в паблике.

noname_user ★★★ ()
Ответ на: комментарий от noname_user

то что ты слился это уже давно всем ясно

куда я слился и кто в курсе об этом?

bad_master ()

Изменил немного но пусто в переменной cursor похоже

  def createTable(self, cursor):
        # Create table
        self.tableWidget = QTableWidget()
        self.tableWidget.setRowCount(cursor.rowcount)
        desc = cursor.description
        self.tableWidget.setColumnCount(8)
        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')
        j = 0
        i = 0
        for row in cursor:
            words = row.split()
            print(row)
            i = 0
            for word in words:
                self.tableWidget.setItem(j, i, QTableWidgetItem(word))
                i = i + 1
            j = j + 1

        self.tableWidget.move(0, 0)

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

bad_master ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей