python - 在烧瓶中使用 WTFORMS 和 SQAlchemy 更新值
问题描述
我有一个网站。我想让人们只需在表格中输入即可轻松更新电子邮件地址。这是我当前的代码尝试,但我尝试的一切都行不通。我已经为他们的电子邮件创建了一个名为 email 的列。
@app.route('/dashboard/settings', methods=['GET', 'POST'])
@login_required
def settings():
form = EmailForm()
if form.validate_on_submit():
current_user.email = form.email.data
session.commit()
return redirect("dashboard/settings")
return render_template("settings.html", form=form)
这些是我的插件
from flask import Flask, render_template, session, abort, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from flask_login import UserMixin, login_user, LoginManager, login_required, logout_user, current_user
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import InputRequired, Length, ValidationError
from flask_bcrypt import Bcrypt
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_security import roles_required
解决方案
问题是我没有找到我想要替换的用户信息。我进行了查询以查找当前用户行,然后将电子邮件编辑为表单收到的数据。
def settings():
form = EmailForm()
if form.is_submitted():
user = User.query.filter_by(username=current_user.username).first()
user.email = form.email.data
db.session.commit()
return redirect("/dashboard/settings")
return render_template("settings.html", form=form)
推荐阅读
- neo4j - 如何过滤掉 Neo4J/Cypher 中节点之间的非空路径
- video-streaming - 带有 GStreamer 的单个 MPEG-TS 流中的双 H264 视频:音频/视频同步?
- javascript - 每次渲染后 componentDidUpdate 不触发
- java - JMH 问题 - 测量不正确
- tableau-api - Tableau 的同比增长
- python - 如何使用 BeautifulSoup 和 Flask 从循环中打印所有字典值
- javascript - 如何在 JavaScript 中提取命令行的输出?
- c++ - 当我使用 GetInternalField() FROM V8 库时出现分段错误
- php - 使用 PHP Simple HTML DOM Parser 获取具有相同类的所有 div 的内容
- wordpress - 如何在添加到购物车按钮下添加自定义链接字段?