SQL INSERT в Python (Postgres, курсор, выполнить) - PullRequest
0 голосов
/ 11 ноября 2018

У меня не было проблем с SELECT извлечением данных в python из базы данных postgres с помощью курсора / execute. Просто изменил sql на INSERT строку, но в БД ничего не вставлено. Может кто-нибудь дать мне знать, что следует изменить? Немного смущен, потому что все то же самое, за исключением оператора SQL.

<!-- language: python -->
@app.route("/addcontact")
def addcontact():

    # this connection/cursor setting showed no problem so far
    conn = pg.connect(conn_str)
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)

    sql = f"INSERT INTO jna (sid, phone, email) VALUES ('123','123','123')"
    cur.execute(sql) 
    return redirect("/contacts")

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Вы должны зафиксировать транзакцию, добавив строку ниже после execute (sql)

conn.commit()

Ссылка: Использование INSERT с базой данных PostgreSQL с использованием Python

0 голосов
/ 11 ноября 2018

Сначала посмотрите на настройки вашей таблицы и убедитесь, что ваши переменные названы правильно в правильном порядке, формате и тому подобном, если вы не войдете в конкретную базу данных на сервере sql, она не будет знать, где находится таблица, вы может потребоваться отправить что-то вроде «USE databasename », прежде чем вы сделаете оператор вставки, чтобы ваш компьютер находился в нужном месте на сервере.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...