Форум сайта python.su
Всем привет.
Просьба помочь.
Есть БД, есть форма с элементами (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_())
Отредактировано IF_gen (Март 4, 2021 19:40:41)
Офлайн
Вам бы неплохо
1 Воспользоваться кнопкой <> и отформатировать текст скрипта. Так его никто не будет читать.
2. Изложить в чем проблема. А так скрипт есть. Может он и работает.
3. Прочитать в документации как передают в запрос аргументы. Убедиться что никто не формирует строку запроса строковыми операциями. Например тут https://www.psycopg.org/docs/usage.html
p.s.
Ко всему прочему неплохо осознать что авторы Qt считают что единственное правильное решение для решения любой задачи использовать Qt. У него есть свои коннекторы к базам данных. Использование чужих модулей для доступа создаст “напряженность” в архитектуре приложения. О том как делать любые вещи надо спрашивать на форумах Qt а не питона или postgres .
Именно поэтому я полностью отказался от Qt.
Отредактировано doza_and (Март 5, 2021 07:15:23)
Офлайн
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_())
Офлайн
xam1816
Как бы на форуме решить эту проблему,у вас есть варианты?
doza_and
1 Воспользоваться кнопкой <> и отформатировать текст скрипта.
Офлайн