def register(): form = RegisterForm() if form.validate_on_submit(): print('注册验证') userEmail = form.userEmail.data userName = form.userName.data password = form.password.data user = User(email=userEmail, username=userName, password=password, confirmed_at=datetime.datetime.now()) #为此用户添加默认权限 role = db.session.query(Role).filter( Role.permissions == Permission.LOGIN).first() user.roles = [role] try: #邮件字段设置了unique=True,若邮箱重复,则异常 db.session.add(user) db.session.commit() except Exception as e1: # t, v, tb = sys.exc_info() # print(t) print('注册异常e1:' + str(e1)) # 数据回滚 db.session.rollback() # 如果没有激活 try: if not db.session.query(User).filter( User.email == userEmail).first().active: sendEmail(userEmail) #再次发送邮件 return "已发送邮件,请到注册邮箱确认注册" else: return '此邮箱已经被注册' # flash("此邮箱已经被注册") except Exception as e2: print('注册异常e2:' + str(e2)) return "数据库连接异常,请联系管理员" sendEmail(userEmail) return "已发送邮件,请到注册邮箱确认注册" return render_template('register.html', formHtml=form)
from webapp import create_app from webapp.models import db, User, Role app = create_app('webapp.config.TestConfig') db.app = app db.create_all() default = Role("default") poster = Role("poster") db.session.add(default) db.session.add(poster) db.session.commit() test_user = User("test") test_user.roles = [default, poster] test_user.set_password("test") db.session.add(test_user) db.session.commit() app.run()