【问题标题】:Inserting into Postgres Database from SQLAlchemy从 SQLAlchemy 插入 Postgres 数据库
【发布时间】:2016-04-10 08:41:22
【问题描述】:

我正在尝试将 HTML 表单中的值输入到 postgresql 数据库中,但出现 500 错误。如果我像这样手动将值输入到程序中,它工作正常......

@app.route('/add', methods=['POST'])
def add():
  name = request.form['name']
  employer_id = random.random()%100000;
  g.conn.execute("INSERT INTO employers(employer_id,name) VALUES ('C005329438','Twitter')")
  return redirect('/')

但是每次我从这样的表单中发送值时都会出错

@app.route('/add', methods=['POST'])
def add():
  name = request.form['name']
  employer_id = random.random()%100000;
  g.conn.execute("INSERT INTO employers(employer_id,name) VALUES (%d,%s)", employer_id, name)
  return redirect('/')

【问题讨论】:

    标签: python postgresql sqlalchemy


    【解决方案1】:
    g.conn.execute("INSERT INTO employers(employer_id,name) VALUES (%d,%s)", employer_id, name)
    

    应该是:

    from sqlalchemy import text
    
    g.conn.execute(text("INSERT INTO employers(employer_id,name) VALUES (:id, :name)"),
                   {"id": str(employer_id), "name": name})
    

    text() 为绑定参数提供后端中立支持。

    根据您的成功查询,您的雇主 ID 属性似乎也是文本类型,因此我添加了 str() 包装。

    【讨论】:

      猜你喜欢
      • 2020-06-01
      • 2014-03-25
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 2019-05-02
      • 2014-01-12
      相关资源
      最近更新 更多