python - 使用 Python Flask 和 SQLAlchemy 将不同的表单数据条目传递到数据库中的同一行
问题描述
我创建了一个包含用户名和电子邮件地址的表单。我从表单中获取这些数据,并通过以下方式将其放入 sqlite3 数据库:
@app.route('/my_form', methods=["GET", "POST"])
def form_data():
if request.method == "POST":
user_name = request.form["name"]
new_user = form_database(name=user_name)
user_email = request.form["email"]
new_user_email = form_database(email=user_email)
try:
db.session.add(new_user)
db.session.add(new_user_email)
db.session.commit()
return redirect("/my_form")
当前结果:每个数据条目都记录到一个新行中:
1|Jack||||||||||
2||svisto@hotmail.com|||||||||
理想的结果:每个数据条目都记录在同一行中:
1|Jack|svisto@hotmail.com|||||||||
问题:如何更改代码以获得理想的结果?
解决方案
我发现的解决方案:
我融合了:
new_user = form_database(name=user_name) and new_user_email = form_database(email=user_email)
一起使代码如下所示:
@app.route('/my_form', methods=["GET", "POST"])
def form_data():
if request.method == "POST":
user_name = request.form["name"]
user_email = request.form["email"]
new_user_details = form_database(name=user_name, email=user_email)#assigns 2 form inputs for both columns in the database model to the same variable
try:
db.session.add(new_user_details)#adds that variable to the database as one entry, hence in one row but different columns
db.session.commit()
推荐阅读
- c++ - 使用值初始化访问构造函数?
- elasticsearch - ElasticSearch 查询太大
- spring-boot - Spring Security LDAP - 使用 AuthenticationManagerBuilder 拒绝上下文
- vue.js - Vue-router 组件复用
- zip - 如何在 Winrar 中替换文件并保持压缩率?
- reactjs - React 中的表单性能很差吗?
- java - Android 动画 CPU 使用率高
- powershell - 在powershell中捕获和复制创建的文件
- javascript - Angular 6单击按钮后如何显示消息
- docker - 在 Windows Docker 容器中启动 HttpListener 时访问被拒绝