Вставка данных в таблицу PostgreSQL через Streamlit - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь вставить данные из приложения Streamlit в таблицу в базе данных Postre sql. У меня нет никаких проблем со вставкой данных в таблицу, если я делаю это исключительно с помощью моего Python скрипта (я подтверждаю, что запросы были выполнены правильно с помощью pgAdmin4).

Но всякий раз, когда я запускаю виджет кнопки Streamlit который отправляет через базу данных, появляется следующая ошибка.

AttributeError: 'builtin_function_or_method' object has no attribute 'execute'

который относится к методу cursor.execute (..)

Ниже приведен сценарий функции, которая отправляет данные в базу данных через st.button ()

import psycopg2
import pandas as pd
import streamlit as st


@st.cache(allow_output_mutation=True)
def insert_record2(tuple):


    # Connect to the PostgreSQL database server
    conn = psycopg2.connect(host='localhost',
                          port='5432',
                          database='xxxy',
                          user= 'postgres',
                          password= 'xxxx')

    conn.autocommit = True
    sql = """INSERT INTO main_fkl_mini_2 (project_name ,sponsor1 ,sponsor2 ,sponsorsh1 ,sponsorsh2 ) VALUES (%s,%s,%s,%s,%s)"""

   
    cursor = conn.cursor()
    cursor.execute(sql, tuple)

insert_record2(tuplex)

Я был бы очень признателен за любую помощь !!

1 Ответ

0 голосов
/ 23 июля 2020

Попробуй ...

# Connect to the PostgreSQL database server
conn = psycopg2.connect(host='localhost',
                      port='5432',
                      database='xxxy',
                      user= 'postgres',
                      password= 'xxxx')

conn.autocommit = True
sql = """INSERT INTO main_fkl_mini_2 {} VALUES """.format(tuple)

cursor = conn.cursor()
cursor.execute(sql, tuple)
...