Example #1
0
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)
Example #2
0
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()