我正在创建一个应用程序,用户可以在其中填写表格并上传文件。我将请求表单数据保存到数据库,也没有上传文件。
但是我在将数据用于同一功能(request.form和上载的文件)并发送电子邮件时遇到了问题。
我尝试重新使用请求表单数据发送电子邮件,并使用会话对象存储文件并附加它。 仅当我仅使用请求表单数据(例如,我的“与我们联系”)功能时,这才起作用。
这是我的代码:
def trial():
if request.method == 'POST':
# Package and store new trial information
new_trial = Organization(companytype=request.form['companytype'],
companyname=request.form['companyname'],
firstname=request.form['firstname'],
lastname=request.form['lastname'],
email=request.form['email'],
username=request.form['email'],
password=request.form['password'],
referrer=request.form['referrer'])
# Package to save file
file = request.files['file']
if file and allowed_file(file.filename):
filename = file.filename
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# Save file to Session
s.f = filename
# Send Form information in Email
msg = Message(
body="Company Name: {}\nReferrer: {}\nTrial Email: {}".format(
request.form['companyname'], request.form['referrer'], request.form['email']
),
subject="Contact regarding: {}".format(request.form['subject']),
recipients=[app.config['MAIL_USERNAME'], request.form['email']],
attachments=[s.f]
)
session.add(new_trial)
session.commit()
mail.send(msg)
return redirect(url_for('trial_success'))
else:
return render_template('signup.html')
这应该重定向到trial_success页面,但是,我得到了:
错误请求
浏览器(或代理)发送了该服务器无法理解的请求。
谢谢!