Ответы пользователя по тегу Python
  • Когда делать ORM mapping?

    phoenixbk
    @phoenixbk
    В своем приложении вы описываете объекты хранения в виде ООП классов. Далее, при работе с этими объектами в Python, система ORM транслирует объектные взаимодействия в SQL в соответствии с указанным провайдером.
    Например, print(Person[person_id].name) сгенерирует следующий SQL код для SQLite:
    SELECT "id", "name", "age"
    FROM "Person"
    WHERE "id" = ?

    Где вместо вопроса подставит указанный person_id. Он выполнится в SQLite, вернет данные в ORM и она уже выдаст нам запрошенные данные в виде объекта Person, из которого в данном случае мы выводим имя.
    И это будет работать так независимо от того, первый раз вы запускаете приложение или сотый.
    На официальной странице Pony ORM все довольно понятно расписано в разделе первые шаги:
    Getting Started with Pony
    Для понимания взаимодействия ORM с базой данных советую включить отладочный режим: set_sql_debug(True). В это случае в консоль будет выводиться все взаимодействие с БД.
    Ответ написан
    Комментировать
  • Не могу запустить модуль PyQt4. Что делать?

    phoenixbk
    @phoenixbk
    Проверьте чтоб путь (...Python34\Lib\site-packages\PyQt4) до PyQt4 был добавлен в переменной среды Path.
    Ответ написан
    Комментировать
  • PyQt 5: условие с QLabel.setText() не меняет значение на форме, как исправить?

    phoenixbk
    @phoenixbk
    Здравствуйте!
    А где "groupBox" добавляется в окно? Сделал простенький вариант с классном на основе QWidget. Всё отображается как надо.
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox, QVBoxLayout, QLabel, QPushButton
    
    class Example(QWidget):
        def __init__(self):
            super().__init__()
            l = QVBoxLayout()
            b = QPushButton('Добавить без параметра!')
            b.clicked.connect(lambda: self.function1())
            b2 = QPushButton('Добавить с параметром!')
            b2.clicked.connect(lambda: self.function1(args='параметр'))
            l.addWidget(b)
            l.addWidget(b2)
            self.setLayout(l)
            self.show()
    
        def function1(self, args=None):
            groupBox = QGroupBox("Титле")
            vbox = QVBoxLayout()
            vbox.addStretch(1)
            groupBox.setLayout(vbox)
    
            integerLabel = QLabel('test')
            vbox.addWidget(integerLabel)
            print('свойство сейчас:' + integerLabel.text())
            if args is not None:
                integerLabel.setText('1')
                print('Тест попадения функции')
                print('Поменялось на:' + args)
            print('свойство сейчас 2:' + integerLabel.text())
            self.layout().addWidget(groupBox)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        w = Example()
        w.resize(250, 150)
        w.setWindowTitle('Simple')
        w.show()
        sys.exit(app.exec_())
    Ответ написан
    1 комментарий