Пример #1
0
def register():

    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        confirmpassword = request.form['Confirmpassword']

        user = User.query.filter_by(username=username).first()

        if user is not None:
            flash('register fail!  this username already exsit!')
            return redirect(url_for('register'))
        if password != confirmpassword:
            flash('Two password entries are inconsistent!')
            return redirect(url_for('register'))

        user = User(username=username, name=username)
        user.set_password(password)
        db.session.add(user)

        db.session.commit()
        flash('register success!')  # 如果验证失败,显示错误消息
        return redirect(url_for('login'))  # 重定向回登录页面

    return render_template('register.html')
Пример #2
0
def register():
    # db.drop_all()
    # db.create_all()       # 只有在数据库模型修改时使用
    if request.method == 'POST':
        user_name = request.form['username']
        passport = request.form['passport']
        passport_check = request.form['passport-check']
        name_pattern = re.compile(r"\w{4,8}")  # 逗号后面不需要空格
        pass_pattern = re.compile(r".{6,20}")
        if passport_check != passport:
            flash("两次输入密码不匹配")
        elif name_pattern.match(user_name) == None:
            flash("用户名为4~8位数字字母")
        elif pass_pattern.match(passport) == None:
            flash("密码为6~20位")
        elif User.query.filter_by(username="******").all():
            flash("该用户名已存在")
        else:
            temp_user = User(username=user_name)
            temp_user.set_password(passport)

            db.session.add(temp_user)
            db.session.commit()
            flash("注册成功")
            return redirect(url_for('login'))
    print("Test!")
    return render_template("SignIn.html")
Пример #3
0
def forge():
    """Generate fake data."""
    db.create_all()

    name = 'He wei'
    username = '******'
    password = '******'
    movies = [
        {
            'title': 'My Neighbor Totoro',
            'year': '1988'
        },
        {
            'title': 'Dead Poets Society',
            'year': '1989'
        },
        {
            'title': 'A Perfect World',
            'year': '1993'
        },
        {
            'title': 'Leon',
            'year': '1994'
        },
        {
            'title': 'Mahjong',
            'year': '1996'
        },
        {
            'title': 'Swallowtail Butterfly',
            'year': '1996'
        },
        {
            'title': 'King of Comedy',
            'year': '1999'
        },
        {
            'title': 'Devils on the Doorstep',
            'year': '1999'
        },
        {
            'title': 'WALL-E',
            'year': '2008'
        },
        {
            'title': 'The Pork of Music',
            'year': '2012'
        },
    ]

    user = User(name=name, username=username)
    user.set_password(password)
    db.session.add(user)
    for m in movies:
        movie = Movie(title=m['title'], year=m['year'])
        db.session.add(movie)

    db.session.commit()
    click.echo('Done.')
Пример #4
0
 def setUp(self):
     app.config.update(TESTING=True,
                       SQLALCHEMY_DATABASE_URI='sqlite:///:memory:')
     db.create_all()
     user = User(name='Test', username='******')
     user.set_password('123')
     movie = Movie(title='Test Movie Title', year='2019')
     db.session.add_all([user, movie])
     db.session.commit()
     self.client = app.test_client()  # 创建测试客户端
     self.runner = app.test_cli_runner()  # 创建命令运行器
Пример #5
0
def admin(username, password):
    db.create_all()
    if all([username, password
            ]) and not User.query.filter_by(username=username).first():
        user = User(username=username)
        user.set_password(password)
        db.session.add(user)
    else:
        click.echo('未成功创建,原因可能是重复或者信息填写错误')
        exit()

    click.echo('创建管理员账号完成')
Пример #6
0
def teacherinfo():
    if not current_user.is_authenticated:
        return redirect(url_for('index'))
    if current_user.isAdmin != 1:
        return redirect(url_for('index'))

    if request.method == 'POST':

        name = request.form['name']
        username = request.form['username']
        password = request.form['password']
        validate_password = request.form['validate_password']

        if not name or len(name) > 20:
            flash('姓名必须小于20位')
            return redirect(url_for('settings'))

        if not username or len(username) > 20:
            flash('用户名必须小于20位')
            return redirect(url_for('settings'))

        if not password or len(password) > 20:
            flash('密码必须小于20位')
            return redirect(url_for('settings'))

        if password != validate_password:
            flash('密码不一致')
            return redirect(url_for('settings'))

        user = User(name=name, username=username)
        user.set_password(password)
        db.session.add(user)
        count = db.session.commit()
        print("count", count)
        flash('添加成功!')

        return redirect(url_for('teacherinfo'))

    teacherlist = User.query.order_by(User.id.asc()).all()

    #瞎搞
    result = db.session.query(
        Movie.teacherId,
        func.count(Movie.teacherId).label('count'),
    ).group_by(Movie.teacherId).all()
    student_count_dict = {}
    for item in result:
        student_count_dict[item[0]] = item[1]
    print(student_count_dict)

    return render_template('teacherinfo.html',
                           teacherlist=teacherlist,
                           student_count_dict=student_count_dict)
Пример #7
0
def admin(username, password):
    db.create_all()
    user = User.query.first()
    if user is not None:
        user.username = username
        user.set_password(password)
    else:
        user = User(username=username, name='admin')
        user.set_password(password)
        db.session.add(user)
    db.session.commit()
    click.echo('Done')
Пример #8
0
    def setUp(self):
        app.config.update(TESTING=True,
                          SQLALCHEMY_DATABASE_URI='sqlite:///:memory:')

        db.create_all()
        user = User(name="Test", username="******")
        user.set_password("123")
        movie = Movie(title="Test Movie Title", year="2019")
        db.session.add_all([user, movie])
        db.session.commit()

        self.client = app.test_client()
        self.runner = app.test_cli_runner()
Пример #9
0
def admin(username, password):
    user = User.query.first()
    if user is not None:
        click.echo("更新管理员账户")
        user.username = username
        user.set_password(password)
    else:
        click.echo("创建管理员账户")
        user = User(username=username, name='Admin')
        user.set_password(password)
        db.session.add(user)
    db.session.commit()
    click.echo("管理员账号更新/创建完成")
Пример #10
0
def admin(username, password):
    user = User.query.first()
    if user is not None:
        click.echo('Updating user...')
        user.username = username
        user.set_password(password)  # 设置密码
    else:
        click.echo('Creating user...')
        user = User(username=username, name='Admin')
        user.set_password(password)  # 设置密码
        db.session.add(user)

    db.session.commit()  # 提交数据库会话
    click.echo('Done.')
Пример #11
0
def register():
    if request.method == 'POST':  # 判断是否是 POST 请求
        try:
            form = UserForm(formdata=request.form)
            if not form.validate():
                flash('Invalid input!', category="danger")
                return render_template('register.html', form=form)

            email = form.email.data
            captcha = form.captcha.data
            password = form.password.data
            password_valid = form.password_valid.data

            mc_captcha = mc.get(email)
            logger.info(mc_captcha)
            if mc_captcha is None:
                flash(
                    u'Wrong captcha or captcha has been expired, please resend!',
                    category="danger")
                return render_template('register.html', form=form)
            elif mc_captcha != captcha:
                flash(u'Wrong captcha!', category="danger")
                return render_template('register.html', form=form)

            if not (len(email) <= 50 and 8 <= len(password) <= 20):
                flash('Invalid input length!', category="warning")
                return render_template('register.html', form=form)

            if password != password_valid:
                flash('Password is inconsistent!', category="danger")
                return render_template('register.html', form=form)

            user = User.query.get(email)
            if user is not None:
                flash('Email exists.', category="danger")
                return render_template('register.html', form=form)

            user = User(email=email)
            user.set_password(password)
            db.session.add(user)
            db.session.commit()

            flash('Register success.', category="success")
            return redirect(url_for('index'))

        except Exception:
            logger.exception('Faild to Register.')
            flash('Get a Exception.', category="danger")

    return render_template('register.html', form=UserForm())
Пример #12
0
    def setUp(self):
        app.config.update(TESTING=True,
                          SQLALCHEMY_DATABASE_URI='sqlite:///:memory:')
        # 创建数据库
        db.create_all()
        # 创建测试数据, 一个用户, 一个电影条目
        user = User(name='Test', username='******')  # 新建用户
        user.set_password('123')  # 设置密码
        movie = Movie(title='Test Movie Title', year='2020')  # 创建一条电影记录
        db.session.add_all([user, movie])  # add_all方法一次性传入多个模型类实例,以列表传入
        db.session.commit()

        self.client = app.test_client()  # 创建测试客户端
        self.runner = app.test_cli_runner()
Пример #13
0
def admin(username, password):
    db.create_all()
    user = User.query.first()
    if user is not None:
        click.echo('Updating user...')
        user.username = username
        user.set_password(password)
    else:
        click.echo('Creating user...')
        user = User(name='Tom Li', username=username)
        user.set_password(password)
        db.session.add(user)
    db.session.commit()
    click.echo('Done.')
Пример #14
0
def admin(username, password):
    user = User.query.first()
    if user is not None:
        click.echo("update user..")
        user.name = "admin"
        user.username = username
        user.set_password(password)
    else:
        click.echo("creating user..")
        user = User(username=username, name="admin")
        user.set_password(password)
        DB.session.add(user)
    db.session.commit()
    click.echo("done..")
Пример #15
0
def admin(username,password):
    db.create_all()
    user = User.query.first()
    if user is not None:
        click.echo('更新用户')
        user.username = username
        user.set_password(password)
    else:
        click.echo('创建用户')
        user = User(username=username,name="Admin")
        user.set_password(password)
        db.session.add(user)
    
    db.session.commit()
    click.echo('创建管理员账号完成')
Пример #16
0
def admin(username, password):
    """create user"""
    db.create_all()
    user = User.query.first()
    if user is not None:
        click.echo('Updating user...')
        user.username = username
        user.set_password(password)  # 设置密码
    else:
        click.echo('Creating user')
        user = User(username=username, name="Admin")
        user.set_password(password)
        db.session.add(user)
    db.session.commit()
    click.echo('Done')
Пример #17
0
def admin(username, password):
    db.create_all()

    user = User.query.first()
    if user is not None:
        click.echo("Updating user...")
        user.username = username
        user.set_password(password)
    else:
        click.echo("Creating user...")
        user = User(username=username, name='Admin')
        user.set_password(password)
        db.session.add(user)
    db.session.commit()
    click.echo("Done.")
Пример #18
0
def admin(username, password):
    """Create user."""
    db.create_all()
    user = User.query.filter_by(username=username).first()
    if user is not None:
        click.echo('Updating user...')
        user.set_password(password)
    else:
        click.echo('Creating user...')
        user = User(username=username, name='Admin')
        user.set_password(password)
        db.session.add(user)

    db.session.commit()
    click.echo('Done.')
Пример #19
0
def admin(username, password):
    db.create_all()
    user = User.query.first()

    if user is not None:  # 用户存在,设置密码
        click.echo('Updating user...')
        user.user_name = username
        user.set_password(password)
    else:  # 用户不存在,新建并设置密码
        click.echo('Creating user...')
        user = User(user_name=username, name='Admin')
        user.set_password(password)
        db.session.add(user)

    db.session.commit()  # 保存到数据库
    click.echo('Done.')
Пример #20
0
def register():
    form = RegistrationForm(
        request.form
    )  # 自定义类 RegistrationForm,它继承了类Form的所有属性。实例化RegistrationForm(用参数request.form),并用form接住。
    if User.query.filter_by(email=form.email.data).first():
        flash('The email is already exist!')
        return redirect(url_for('login'))
    elif request.method == 'POST' and form.validate():
        user = User(username=form.username.data, email=form.email.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Thanks for registering')
        return redirect(url_for('login'))
    else:
        return render_template('register.html', form=form)
Пример #21
0
    def setUp(self):
        # 更新配置
        app.config.update(TESTING=True,
                          SQLALCHEMY_DATABASE_URI="sqlite:///:memory:")
        # 创建数据库和表
        db.create_all()
        # 创建测试数据,一个用户,一个电影条目
        user = User(name="Test", username="******")
        user.set_password("123")
        movie = Movie(title="Test Movie Title", year="2019")
        # 使用 add_all() 方法一次添加多个模型类实例,传入列表
        db.session.add_all([user, movie])
        db.session.commit()

        self.client = app.test_client()  # 创建测试客户端
        self.runner = app.test_cli_runner()  # 创建测试命令运行器
Пример #22
0
    def setUp(self):
        #更新配置
        app.config.update(TESTING=True,
                          SQLALCHEMY_DATABASE_URL='sqlite:///:memory:')
        #创建数据库和表
        db.create_all()
        #创建测试数据,一个用户,一个电影条目
        user = User(name='Test', username='******')
        user.set_password('123456')
        movie = Movie(title='Test Movie Title', year='2019')
        #使用add_all()方法一次添加多个模型类实例,传入列表
        db.session.add_all([user, movie])
        db.session.commit()

        self.client = app.test_client()  #创建测试客户端
        self.runner = app.test_cli_runner()  #创建测试命令运行器
Пример #23
0
    def init(self, request):
        app.config.update(TESTING=True,
                          SQLALCHEMY_DATABASE_URI='sqlite:///:memory:')

        db.create_all()
        user = User(name='TestName', username='******')
        user.set_password('testpassword')
        movie = Movie(title='Test Movie Title', year='2019')
        db.session.add_all([user, movie])
        db.session.commit()

        def final():
            db.session.remove()
            db.drop_all()

        request.addfinalizer(final)
Пример #24
0
def register():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        password_again = request.form['password_again']

        if not username or not password or not password_again or password != password_again:
            flash('Invalid input')
            return redirect(url_for('register'))

        user = User(username=username)
        user.set_password(password)
        db.session.add(user)
        db.session.commit()
        return redirect(url_for('login'))

    return render_template('register.html')
Пример #25
0
    def setUp(self) -> None:  # 固定函数,用于进行测试之前的设置
        # 更新配置
        app.config.update(
            TESTING=True,  # 打开测试模式
            SQLALCHEMY_DATABASE_URI='sqlite:///:memory:'  # 使用内存型数据库,不会干扰文件
        )
        # 创建测试数据库和表
        db.create_all()
        # 创建测试数据
        user = User(name='Test', user_name='test')
        user.set_password('123')
        movie = Movie(title='Test Movie', year='2020')
        db.session.add_all([user, movie])
        db.session.commit()

        self.client = app.test_client()  # 得到一个模拟客户端对象用于测试
        self.runner = app.test_cli_runner()  # 得到一个命令运行器对象
Пример #26
0
def admin(username,password):
    """创建用户"""
    db.create_all()

    user=User.query.first()
    if user is not None:
        click.echo('更新用户中......')
        user.username=username
        user.set_password(password)
    else:
        click.echo('创建用户中......')
        user=User(username=username,name='Admin')
        user.set_password(password)
        db.session.add(user)

    db.session.commit()
    click.echo('完成。')
Пример #27
0
 def setUp(self):  #测试用例调用前执行
     #更新配置
     app.config.update(
         TESTING=True,  #开启测试模式
         SQLALCHEMY_DATABASE_URI='sqlite:///:memory:'  #使用SQLite的内存数据库
     )
     #创建数据库和表
     db.create_all()
     #创建测试数据
     user = User(name='测试账号', username='******')
     user.set_password('123')
     movie = Movie(title='Test Movie Title', year='2020')
     #使用add_all()方法一次添加多个model类实例,传入列表
     db.session.add_all([user, movie])
     db.session.commit()
     self.client = app.test_client()  #创建测试客户端
     self.runner = app.test_cli_runner()  #创建测试命令运行器
Пример #28
0
    def setUp(self):
        #更新配置  在开发和测试时候通常配置不一样
        app.config.update(
            TESTING=True,  #开启测试模式   出错时候不会输出多余消息
            SQLALCHEMY_DATABASE_URI='sqlite:///:memory:'  #SQLite内存型数据库,不会
        )
        #创建数据库和表
        db.create_all()
        #创建测试数据,一个用户,一个电影信息
        user = User(name='Test', username='******')
        user.set_password('123456')
        movie = Movie(title='测试电影名称', year='2020')
        db.session.add_all([user, movie])
        db.session.commit()

        self.client = app.test_client()  #创建测试客户端(模拟客户端请求)
        self.runner = app.test_cli_runner()  #创建测试命令运行期(触发自定义命令)
Пример #29
0
def admin(username, password):
    '''创建用户'''
    db.create_all()

    user = User.query.first()
    if user is not None:
        click.echo('用户更新...')
        user.username = username
        user.set_password(password)
    else:
        click.echo('创建用户...')
        user = User(username=username, name='Admin')
        user.set_password(password)
        db.session.add(user)

    db.session.commit()
    click.echo('完成!')
Пример #30
0
def admin(username, password):
    """Create user."""
    db.create_all()

    user = User.query.first()
    if user is not None:  # 如果用户存在,则更新相关信息
        click.echo('Updating user...')
        user.username = username
        user.set_password(password)
    else:  # 用户不存在,创建管理员
        click.echo('Creating user...')
        user = User(username=username, name='Admin')
        user.set_password(password)
        db.session.add(user)

    db.session.commit()
    click.echo('Done.')