[英]auto-saving the contents of a WTForm
我正在(很坦白)有些微不足道的形式。 因此,我希望每次他們向數據字段中輸入內容時保存它。 但是,在表單完成並通過驗證之前,我不希望將它們另存為網站用戶。
這就是我想像的javascript端所包含的內容
$('input').blur(function() {
$.post(endpoint, form);
});
但是,我目前對端點所擁有的是這樣的:
@auth.route('/register', methods=['GET', 'POST'])
def register():
""" register a new user using the form """
form = RegistrationForm()
if form.validate_on_submit():
new_user = User(
email=form.email.data.lower(),
first_name=form.first_name.data.title(),
last_name=form.last_name.data.title(),
username=form.username.data.lower(),
password=form.password.data
)
db.session.add(new_user)
flash('successfully registered!', 'success')
return redirect(url_for('auth.login'))
return render_template('user/register.html', form=form)
這樣可以很好地注冊用戶,但是如果他們重新訪問而又不使其成為用戶,那么我如何簡單地保存其表單數據以供以后使用?
我認為您必須將每個會話存儲到數據庫中,並且必須在會話和Cookie進行通信時加載部分填寫的表單數據。
恕我直言,當新用戶進入應用程序時,將創建新會話,您必須將該會話存儲到數據庫中,如果用戶開始填寫表格,則必須與會話變量一起更新數據,然后當同一用戶嘗試下次訪問時,需要從數據庫加載相同的會話。 必須從Cookie輸入中識別出會話,例如
sid
識別會話 sid = request.cookies.get(app.session_cookie_name)
接下來,您必須將部分填寫的表單數據與該特定會話一起加載。
response.set_cookie(app.session_cookie_name, session.sid,
expires=self.get_expiration_time(app, session),
httponly=True, domain=domain)
示例代碼已經由一些上帝為您完成了:)
我認為您已經知道存儲和檢索表單數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.