Найти - Пользователи
Полная версия: Данные элементов формы как аргументы запроса
Начало » GUI » Данные элементов формы как аргументы запроса
1
IF_gen
Всем привет.
Просьба помочь.
Есть БД, есть форма с элементами (PushButton, LineEdit).
Как сделать так, что бы при нажатии кнопки запускался запрос INSERT где одним из аргументов VALUE был текст в LineEdit?

from PyQt5 import QtWidgets, uic
import psycopg2

class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
uic.loadUi(“MyForm.ui”, self)
self.btnLoad.clicked.connect(self.on_click_load)

def on_click_load(self):
self.lineEdit.setText(“Хабля”)

conn = psycopg2.connect(dbname='TEST1', user='postgres', password='1123581321', host='localhost')
cursor = conn.cursor()
tree = self.lineEdit.text()

cursor.execute(
‘INSERT INTO table2(num, “Tree”) VALUES(444, ’“ + tree + ”')')
conn.commit()
conn.close()
if __name__ == “__main__”:
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
doza_and
Вам бы неплохо
1 Воспользоваться кнопкой <> и отформатировать текст скрипта. Так его никто не будет читать.
2. Изложить в чем проблема. А так скрипт есть. Может он и работает.
3. Прочитать в документации как передают в запрос аргументы. Убедиться что никто не формирует строку запроса строковыми операциями. Например тут https://www.psycopg.org/docs/usage.html

p.s.
Ко всему прочему неплохо осознать что авторы Qt считают что единственное правильное решение для решения любой задачи использовать Qt. У него есть свои коннекторы к базам данных. Использование чужих модулей для доступа создаст “напряженность” в архитектуре приложения. О том как делать любые вещи надо спрашивать на форумах Qt а не питона или postgres .
Именно поэтому я полностью отказался от Qt.

xam1816
IF_gen
Просьба помочь.
 from PyQt5 import QtWidgets, uic
import psycopg2
class MyWindow(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
uic.loadUi(MyForm.ui, self)
self.btnLoad.clicked.connect(self.on_click_load)
def on_click_load(self):
self.lineEdit.setText(“Хабля”)
conn = psycopg2.connect(dbname='TEST1', user='postgres', password='1123581321', host='localhost')
cursor = conn.cursor()
tree = self.lineEdit.text()
cursor.execute(
INSERT INTO table2(num, Tree) VALUES(444, ’“ + tree + ')')
conn.commit()
conn.close()
if __name__ == __main__:
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())

ваш код дает ошибку,говорит что нет отступов.Как бы на форуме решить эту проблему,у вас есть варианты?
doza_and
xam1816
Как бы на форуме решить эту проблему,у вас есть варианты?
doza_and
1 Воспользоваться кнопкой <> и отформатировать текст скрипта.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB