请问tornado异步下redirect问题,tornadoredirect,我本想实现一个注册用户功
请问tornado异步下redirect问题,tornadoredirect,我本想实现一个注册用户功
我本想实现一个注册用户功能, web框架使用tornado 数据库是使用mongodb但在注册时出现redirect的exception。
class RegisterHandler(BaseHandler):def get(self): self.render_html('register.html')@[email protected] post(self): username = self.get_argument('username') email = self.get_argument('email') password = self.get_argument('password') captcha = self.get_argument('captcha') _verify_username = yield self.db.user.find_one({'username': username}) if _verify_username: self.flash(u'用户名已存在', 'error') self.redirect('/auth/register') _verify_email = yield self.db.user.find_one({'email': email}) if _verify_email: self.flash(u'邮箱名已存在', 'error') self.redirect('/auth/register') if captcha and captcha == self.get_secure_cookie('captcha').replace(' ',''): self.flash('验证码输入正确', 'info') else: self.flash('验证码输入错误', 'error') self.redirect('/auth/register') password = hashlib.md5(password + self.settings['site']).hexdigest() profile = {'headimg':'', 'site':'', 'job': '', 'signature': '', 'github': '', 'description': ''} user_profile = yield self.db.profile.insert(profile) data = {'username': username, 'email': email, 'password': password, 'timestamp': time.time(), 'profile_id': str(user_profile)} yield self.db.user.insert(data) self.set_secure_cookie('user', username) self.redirect('/')
这是代码部分,本想如果用户输入验证码出错就跳转到注册页面。但是问题是验证码出错也会继续执行一下代码。虽然在self.redirect后添加self.finish()会终止代码,但 self.redirect本身不是会执行一次finish操作么因为这个添加finish会报出执行两次self.finish()的错误。
还有就是虽然验证码出错后用户还是注册了, 而最后一行的self.finish不会被执行,而是会跳转到注册页面。 怎么解决这个问题呢?
直接返回即可
return self.redirect('/auth/register')
或者
self.redirect('/auth/register')return
编橙之家文章,
相关内容
- 求python大牛帮看看ctypes.string_at的问题,,代码我也放在
- Python元类怎么理解更好吸收,python元类理解,如题,py
- 那些知名BBS是用python写的呢?,bbspython写,有哪些用pyth
- Python将文件中空格变成换行的方法如何做,python换行
- python哪种方法可以实现同php中__call函数一样的功能?,
- 请问下载同样包chrome比easy_install下载要快得多吗,chr
- 安装make时出现报错信息Error 1求助问题所在,python3.5.
- Mac OS终端无法直接运行python脚本是什么原因呢?,ospyt
- python如何获取真实图片下载地址源代码,,http://www.j
- 使用supervisor来监控py的进程之后报错,源码如图哪里有问
评论关闭