尝试在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插入值,这对我没有用。
答案 0 :(得分:0)
因此,要使其正常工作,似乎缺少一些东西。首先,模型的定义需要一些注意事项。
这就是我认为应该的。
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()