【问题标题】:Insert user provided values in database using flask and SQLAlchemy使用烧瓶和 SQLAlchemy 在数据库中插入用户提供的值
【发布时间】:2018-12-01 03:53:38
【问题描述】:

试图在 Flask 应用程序的数据库(主)中的现有表(客户端)中插入一些值。这个想法是插入用户或某些脚本提供的值(存储在变量中)

我的烧瓶脚本如下:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://user:pswd@localhost/master'
db = SQLAlchemy(app)

class clients():
    __tablename__ = "clients"
    def __init__(self, client_id, command, response, log_date):
        client_id = 'asdfg123'
        command = 'echo'
        response = 'All Is Well'
        log_date = '2018-06-21'

db.session.commit()

print "yo"

@app.route("/")
def main():
    return 'Hello World !'

if __name__ == '__main__':
    app.run()

数据库架构如下:

master=> select * from clients;
 client_id | command |     response     |  log_date  
-----------+---------+------------------+------------
 QWERTY123 | ls      | OK Report Hai Ji | 2018-06-21
(1 row)

几乎所有的文档/示例都在谈论创建架构,然后使用 self 插入值,这对我来说没用。

【问题讨论】:

    标签: python postgresql flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    因此,这似乎缺少一些使它起作用的东西。首先,模型的定义需要一些东西。

    我认为应该是这样的。

    class Client(db.Model):
      client_id = db.Column(db.String(30), primary_key=True)
      command = db.Column(db.String(30))
      response = db.Column(db.String(30))
      log_date = db.Column(db.Date)
    

    然后,此模型代表表中的一行。然后在您的一条路线中,您可以从表单 POST 或路径变量或其他东西中提取用户数据,并创建一个像这样的对象。

    client = Client(client_id=formvar1, command=formvar2, response=formvar3, log_date=formvar4)
    

    现在您有了想要告诉 SQLAlchemy(仍在路由中)将该对象插入数据库的对象。

    db.session.add(client)
    db.session.commit()
    

    【讨论】:

      猜你喜欢
      • 2013-11-22
      • 1970-01-01
      • 2020-11-30
      • 2021-08-23
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多