Flask 如何向请求中添加字段?
我有一个登录页面。提交时,如果选择“webmail”,则请求 应重定向到webmail服务器,并提交凭据,但 在不同的按键下。以下是我正在尝试的:Flask 如何向请求中添加字段?,flask,wtforms,flask-wtforms,Flask,Wtforms,Flask Wtforms,我有一个登录页面。提交时,如果选择“webmail”,则请求 应重定向到webmail服务器,并提交凭据,但 在不同的按键下。以下是我正在尝试的: if form.validate_on_submit(): if form.destination.data == 'webmail': form.rc_user.data = form.email.data form.rc_password.data = form.password.data
if form.validate_on_submit():
if form.destination.data == 'webmail':
form.rc_user.data = form.email.data
form.rc_password.data = form.password.data
return redirect('https://example.com/webmail/', code=307)
这几乎起作用了:POST
被重定向到webmail。然而,价值观
提交的是默认值,而不是指定的值
不过,我还有一些问题:
- 钥匙应该是
和\u user
,但烧瓶似乎被烧坏了 前导下划线字段名\u pass
- 我不想将这些字段添加到原始类中。我想要子类
提交后,大致如下:
if form.validate_on_submit():
if form.destination.data == 'webmail':
class WebmailLoginForm(LoginForm):
rc_user = EmailField('user', default=form.email.data)
form = WebmailLoginForm(request.form)
return redirect('https://example.com/webmail/', code=307)
if form.validate_on_submit():
如果form.destination.data==“webmail”:
类WebmailLoginForm(LoginForm):
rc_user=EmailField('user',默认值=form.email.data)
form=WebmailLoginForm(request.form)
返回重定向('https://example.com/webmail/,代码=307)
执行此操作时,添加的字段显示为
,而不是 提交UnboundField
- 发出重定向时,浏览器只需重新提交到另一台服务器即可。也就是说,服务器影响请求已经太晚了
因此,要么:启动一个新请求,要么使用javascript更改提交目标
谢谢我的同事Johan给我的灵感