在 data.put() 我需要向用户显示数据已成功提交或失败,以防 pof one
on data.put() i need to display to the user that the data has been successfully submitted or failure incase pof one
我主要在 jinja2 模板上使用 python 和 google 应用引擎
我希望当用户注册一个新帐户时,他们会收到一个弹出窗口,表明他们的注册成功,甚至在进入下一个注册步骤之前界面上的任何警报。
def post(self):
user = (str(users.get_current_user().email()))
userquery = Users.query(Users.email == user)
count = userquery.count()
if count == 0:
#test if user is admin or employee
qry = Users.query()
count = qry.count()
if count == 0:
privilage = 'admin'
db_put = Users(
f_name=self.request.get("f_name"),
l_name = self.request.get("l_name"),
org = self.request.get("org"),
email=users.get_current_user().email(),
privilage = privilage
)
db_put.put()
如何调用此 POST 方法?您是直接向那里发送表单(使用方法 1)还是通过 AJAX 调用(使用方法 2)完成?
方法一
您可以重定向到 GET 页面,在该页面中呈现包含成功或错误消息的模板供 Jinja 使用。但是,这将涉及页面更改。
import webapp2
class MyHandler(webapp2.RequestHandler):
def get(self): # Let's assume /someurl is mapped to this handler.
template_values = {}
notification = self.request.get('notification')
if notification:
template_values['notification'] = notification
self.response.set_status(200)
self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
# Need to get the template from jinja and set it as template variable.
self.response.out.write(template.render(template_values))
def post(self):
# Do all your stuff here.
self.redirect('/someurl?notification=Success')
或者,您可以直接在请求中设置参数,而不是将它们作为 URI 参数传递:
def post(self):
# Do all your stuff here.
self.redirect('/someurl, params={'notification': 'Success'})
方法二
在此方法中,您可以发回 JSON 响应,其中包含成功或错误消息。调用者(您 javascript 中向后端提交请求的任何函数)都可以使用它来呈现 butterbar 消息或您选择的其他弹出通知:
import json
import webapp2
class MyHandler(webapp2.RequestHandler):
def post(self):
# Do all your stuff here.
self.response.set_status(200)
self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
self.response.headers['Content-Disposition'] = 'attachment'
self.response.out.write(json.JsonEncoder(sort_keys=True).encode('Success'))
对于后者,请务必考虑跨站点脚本 (XSS) 漏洞并可能添加 JSON 前缀。
我主要在 jinja2 模板上使用 python 和 google 应用引擎 我希望当用户注册一个新帐户时,他们会收到一个弹出窗口,表明他们的注册成功,甚至在进入下一个注册步骤之前界面上的任何警报。
def post(self):
user = (str(users.get_current_user().email()))
userquery = Users.query(Users.email == user)
count = userquery.count()
if count == 0:
#test if user is admin or employee
qry = Users.query()
count = qry.count()
if count == 0:
privilage = 'admin'
db_put = Users(
f_name=self.request.get("f_name"),
l_name = self.request.get("l_name"),
org = self.request.get("org"),
email=users.get_current_user().email(),
privilage = privilage
)
db_put.put()
如何调用此 POST 方法?您是直接向那里发送表单(使用方法 1)还是通过 AJAX 调用(使用方法 2)完成?
方法一
您可以重定向到 GET 页面,在该页面中呈现包含成功或错误消息的模板供 Jinja 使用。但是,这将涉及页面更改。
import webapp2
class MyHandler(webapp2.RequestHandler):
def get(self): # Let's assume /someurl is mapped to this handler.
template_values = {}
notification = self.request.get('notification')
if notification:
template_values['notification'] = notification
self.response.set_status(200)
self.response.headers['Content-Type'] = 'text/html; charset=utf-8'
# Need to get the template from jinja and set it as template variable.
self.response.out.write(template.render(template_values))
def post(self):
# Do all your stuff here.
self.redirect('/someurl?notification=Success')
或者,您可以直接在请求中设置参数,而不是将它们作为 URI 参数传递:
def post(self):
# Do all your stuff here.
self.redirect('/someurl, params={'notification': 'Success'})
方法二
在此方法中,您可以发回 JSON 响应,其中包含成功或错误消息。调用者(您 javascript 中向后端提交请求的任何函数)都可以使用它来呈现 butterbar 消息或您选择的其他弹出通知:
import json
import webapp2
class MyHandler(webapp2.RequestHandler):
def post(self):
# Do all your stuff here.
self.response.set_status(200)
self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
self.response.headers['Content-Disposition'] = 'attachment'
self.response.out.write(json.JsonEncoder(sort_keys=True).encode('Success'))
对于后者,请务必考虑跨站点脚本 (XSS) 漏洞并可能添加 JSON 前缀。