示例#1
0
文件: views.py 项目: hrz123/watchlist
def index():
    if request.method == 'POST':  # 判断是否是 POST 请求
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取表单数据
        title = request.form.get('title')  # 传入表单对应输入字段的 name 值
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')  # 显示错误提示
            return redirect(url_for('index'))  # 重定向回主页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('Item created.')
        return redirect(url_for('index'))

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#2
0
def index():
    movies = Movie.query.all()
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        title = request.form.get('title')
        year = request.form.get('year')
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input')
            return redirect(url_for('index'))
        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item Created')
        return redirect(url_for('index'))

    # user = User.query.first()
    # print(inject_user())
    # return render_template('index.html', user=user, movies=movies)
    return render_template('index.html', movies=movies)
示例#3
0
def forge():
    name = "Bruce"
    movies = [
       {'title':"大赢家","year":"2020"},
       {'title':"囧妈","year":"2020"},
       {'title':"疯狂外星人","year":"2019"},
       {'title':"战狼","year":"2017"},
       {'title':"速度与激情8","year":"2018"},
       {'title':"极限特工","year":"2010"},
       {'title':"叶问","year":"2014"},
       {'title':"杀破狼","year":"2000"},
       {'title':"叶问2","year":"2016"}
    ]
    user = User(name=name)
    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("导入数据完成")
示例#4
0
文件: views.py 项目: Snow670/demo
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取表单的数据
        title = request.form.get('title')
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('输入错误')
            return redirect(url_for('index'))
        # 将数据保存到数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)
        db.session.commit()
        flash('创建成功')
        return redirect(url_for('index'))

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#5
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取表单数据
        title = request.form.get('title')
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid title or year!')  # 显示错误提示
            return redirect(url_for('index'))  # 重定向回主页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')  # 显示成功创建的提示
        return redirect(url_for('index'))

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#6
0
def index():
    if request.method == "POST":
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        title = request.form.get('title')
        year = request.form.get('year')
        #验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')  #显示错误提示
            return redirect(url_for('index'))
        #保存表单数据到数据库
        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')
        return redirect(url_for('index'))

    user = User.query.first()  # 读取用户记录
    movies = Movie.query.all()  # 读取所有电影记录
    return render_template('index.html', movies=movies)
示例#7
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form['title']
        year = request.form['year']

        if not title or not year or len(year) != 4 or len(title) > 60:
            flash('Invalid input.')
            return redirect(url_for('index'))

        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')
        return redirect(url_for('index'))

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#8
0
    def setUp(self):
        app.config.update(
            TESTING=True,
            SQLALCHEMY_DATABASE_URI='sqlite:///:memory:'
        )

        #create database
        db.create_all()
        #create one user, one movie
        user = User(name='Test', username='******')
        user.set_password('123')
        movie = Movie(title='Test Movie Title', year='2019')
        #add multiple class
        db.session.add_all([user, movie])
        db.session.commit()

        #works like browser
        self.client = app.test_client()
        #works like cmd
        self.runner = app.test_cli_runner()
示例#9
0
def forge():
    db.create_all()
    name = "Bruce"
    movies = [{
        'title': '杀破狼',
        'year': '2003'
    }, {
        'title': '扫毒',
        'year': '2018'
    }, {
        'title': '捉妖记',
        'year': '2016'
    }, {
        'title': '囧妈',
        'year': '2020'
    }, {
        'title': '葫芦娃',
        'year': '1989'
    }, {
        'title': '玻璃盒子',
        'year': '2020'
    }, {
        'title': '调酒师',
        'year': '2020'
    }, {
        'title': '釜山行',
        'year': '2017'
    }, {
        'title': '导火索',
        'year': '2005'
    }, {
        'title': '叶问',
        'year': '2015'
    }]
    user = User(name=name)
    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('数据导入完成')
示例#10
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form['title']
        year = request.form['year']

        if not title or len(year) > 20 or len(title) > 20:
            flash('输入异常!')
            return redirect(url_for('index'))

        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('添加成功')
        return redirect(url_for('index'))

    movies = Movie.query.order_by(Movie.teacherId.asc(), Movie.year.asc(),
                                  Movie.id.asc()).all()
    if current_user.is_authenticated and current_user.isAdmin == 0:
        movies = Movie.query.filter_by(teacherId=current_user.id).order_by(
            Movie.teacherId.asc(), Movie.year.asc(), Movie.id.asc()).all()

    #瞎搞
    _start_time = datetime.datetime.now().strftime("%Y-%m-%d") + " 00:00:00"
    _end_time = datetime.datetime.now().strftime("%Y-%m-%d") + " 23:59:59"
    result = db.session.query(
        Log.studentId,
        func.sum(Log.amount).label('count'),
    ).filter(Log.timestamp >= _start_time).filter(
        Log.timestamp <= _end_time).group_by(Log.studentId).all()
    # result = db.session.query( Log.studentId, func.count(1).label('count'), ).filter(db.cast(Log.timestamp, db.DATE) == db.cast(datetime.datetime.now(), db.DATE)).group_by(Log.studentId).all()
    today_star_dict = {}
    for item in result:
        today_star_dict[item[0]] = item[1]
    print(today_star_dict)

    return render_template('index.html',
                           movies=movies,
                           today_star_dict=today_star_dict)
示例#11
0
def index():
    if request.method == 'POST':  # 提交添加电影条目的表单
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form.get('title')
        # title = request.form['title']
        year = request.form.get('year')
        # 仅靠在<input>内添加required属性实现客户端验证并不完全可靠,还要在服务器端追加验证
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')
            return redirect(url_for('index'))

        movie = Movie(title=title, year=year)
        db.session.add(movie)  # 添加到数据会话
        db.session.commit()  # 提交到数据库
        flash('Item created.')
        return redirect(url_for('index'))

    movies = Movie.query.all()  # 读取所有电影记录
    return render_template('index.html', movies=movies)
示例#12
0
def hello():
    if request.method == 'POST':
        if not current_user.is_authenticated:  # 如果当前用户未认证
            return redirect(url_for('login'))  # 重定向到主页
        # 获取表单数据
        title = request.form.get('title')  # 传入表单对应输入字段的 name 值
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')  # 显示错误提示
            return redirect(url_for('hello'))  # 重定向回主页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('Item created success.')  # 显示成功创建的提示
        return redirect(url_for('hello'))  # 重定向回主页
    user = User.query.first()
    movies = Movie.query.all()
    # return render_template('index.html', user=user, movies=movies)
    return render_template('index.html', movies=movies)
示例#13
0
def index():
    if request.method == "POST":
        if not current_user.is_authenticated:  # 如果当前用户未认证
            return redirect(url_for('index'))  # 重定向到主页
        #获取表单数据
        title = request.form.get('title')
        year = request.form.get('year')
        #验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invaild input.')
            return redirect(url_for('index'))  #重定向回主页
        # 保存表单数据都数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('Item created.')  # 显示成功创建的提示
        return redirect(url_for('index'))  # 重定向回主页

    user = User.query.first()
    movies = Movie.query.all()
    return render_template('index.html', user=user, movies=movies)
示例#14
0
    def setUp(self):    
        # 更新配置
        app.config.update(
            TESTING = True,    #将 TESTING 设为 True 来开启测试模式,这样在出错时不会输出多余信息
            SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'    #这会使用 SQLite 内存型数据库,不会干扰开发时使用的数据库文件。你也可以使用不同文件名的 SQLite 数据库文件,但内存型数据库速度更快
        )
        # 创建数据库和表
        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.client 来保存它
                                           #对它调用 get() 方法就相当于浏览器向服务器发送 GET 请求,调用 post() 则相当于浏览器向服务器发送 POST 请求
        
        self.runner = app.test_cli_runner()    #创建测试命令运行器 —— 用来触发自定义命令
示例#15
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取表单的数据
        title = request.form.get('title')
        year = request.form.get('year')

        # 验证title,year不为空,并且title长度不大于60,year的长度不大于4
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('输入错误')  # 错误提示
            return redirect(url_for('index'))  # 重定向回主页

        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('数据创建成功')
        return redirect(url_for('index'))

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#16
0
def index():
    if request.method == 'GET':
        user = User.query.first()
        movies = Movie.query.all()
        return render_template('index.html', movies=movies)
    elif request.method == 'POST':
        #require login to operate
        if not current_user.is_authenticated:
            flash("please login...")
            return redirect(url_for('index'))

        title = request.form.get('title')
        year = request.form.get('year')
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid Input.')
            return redirect(url_for('index'))
        else:
            movie = Movie(title=title, year=year)
            db.session.add(movie)
            db.session.commit()
            flash('Item Created.')
            return redirect(url_for('index'))
示例#17
0
def forge():
    db.create_all()
    name = 'Mu Zi'
    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)
    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.')
示例#18
0
def index():
    if request.method == "POST":  # 判断是否是POST请求
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取输入的电影名
        title = request.form.get('title')
        # 获取输入的电影年份
        year = request.form.get('year')
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('输入错误!')  # 弹出错误信息
            return redirect(url_for('index'))  # 重定向至首页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)
        db.session.add(movie)  # 保存至数据库
        db.session.commit()  # 提交数据库更改
        flash('条目创建成功!')
        return redirect(url_for('index'))  # 重定向至首页

    # user = User.query.first()
    movies = Movie.query.all()  # 读取数据库中所有电影记录
    # 调用render_templates()函数,将实际的变量传入index.html(即模板)中的变量
    return render_template('index.html', movies=movies)
示例#19
0
def forge():
    """Generate fake data."""
    db.create_all()

    name = 'Grey Li'
    url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=100&page_start=0'
    json = requests.get(url).json()

    def remain(item):
        remain = {'rate', 'title', 'url'}
        return {k: v for k, v in item.items() if k in remain}

    movies = list(map(remain, json['subjects']))

    user = User(name=name)
    db.session.add(user)
    for m in movies:
        movie = Movie(title=m['title'], rate=m['rate'], url=m['url'])
        db.session.add(movie)

    db.session.commit()
    click.echo('Done.')
示例#20
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('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() # 创建测试命令运行器,用来触发自定义命令
示例#21
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form.get('title')
        year = request.form.get('year')

        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('非法输入')
            return redirect(url_for('index'))

        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash("创建成功")
        return redirect(url_for('index'))

    # user = User.query.first()  # 读取用户记录
    movies = Movie.query.all()  # 读取所有电影记录
    return render_template('index.html', movies=movies)
示例#22
0
def index():
    if request.method == 'POST':  # 判断是否是 POST 请求
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        # 获取表单数据
        title = request.form.get('title')  # 传入表单对应输入字段的 name 值
        # title = request.form['title']
        year = request.form.get('year')
        # year = request.form['year']
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('无效输入!电影名不能大于60字,上映年份请输入年份(如:2020)')  # 显示错误提示
            return redirect(url_for('index'))  # 重定向回主页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('观影记录增加成功!')  # 显示成功创建的提示
        return redirect(url_for('index'))  # 重定向回主页

    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#23
0
def index():
    # 这部分是添加表单
    if request.method == 'POST':
        # 认证保护
        if not current_user.is_authenticated:
            flash('you need to login to add items')
            return redirect(url_for('index'))
        # 获取表单数据
        title = request.form.get('title')
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('invalid input')
            return redirect(url_for('page_404'))
        # 保存数据
        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('item created')
        return redirect(url_for('index'))
    #这部分是显示电影清单
    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#24
0
def index():
    if request.method == 'POST':
        #判断当前用户是否授权
        if not current_user.is_authenticated:
            return redirect(url_for('index'))
        #已授权并且是post请求,获取请求中的信息
        title = request.form['title']
        year = request.form['year']
        #判断请求中的信息是否符合要求
        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')
            return redirect(url_for('index'))

        #将数据写入数据库
        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')
        return redirect(url_for('index'))

    #获取所有电影信息
    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#25
0
def forge():
    """生成数据"""
    db.create_all()
    name='meiyujack'
    movies=[
        {'title':'龙猫','year':'1988'},
        {'title':'死亡诗社','year':'1989'},
        {'title':'完美的世界','year':'1993'},
        {'title':'这个杀手不太冷','year':'1994'},
        {'title':'麻将','year':'1996'},
        {'title':'燕尾蝶','year':'1996'},
        {'title':'喜剧之王','year':'1999'},
        {'title':'机器人总动员','year':'2008'},
    ]

    user=User(name=name)
    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('数据已导入。')
示例#26
0
def forge():
    """生成虚拟数据"""
    db.create_all()
    name = 'Alex Song'
    movies = [
        {'title': '龙猫', 'year': '1988'},
        {'title': '死亡诗社', 'year': '1989'},
        {'title': '完美的世界', 'year': '1993'},
        {'title': '这个杀手不太冷', 'year': '1994'},
        {'title': '麻将', 'year': '1996'},
        {'title': '燕尾蝶', 'year': '1996'},
        {'title': '喜剧之王', 'year': '1999'},
        {'title': '鬼子来了', 'year': '1999'},
        {'title': '机器人总动员', 'year': '2008'},
        {'title': '麦兜当当伴我心', 'year': '2012'},
    ]
    user = User(name=name)
    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!')
示例#27
0
def index():
    """Add a item"""

    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form.get('title')
        year = request.form.get('year')

        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')  #错误提示
            return redirect(url_for('index'))  # 重定向回主页

        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')  #显示成功创建提示
        return redirect(url_for('index'))

    # user = User.query.first() # 没有上下文处理函数则要此变量
    movies = Movie.query.all()
    return render_template('index.html', movies=movies)
示例#28
0
def index():
    form = MovieForm()
    if request.method == 'POST':  # 验证 POST 请求
        # if request.method == 'POST' and form.validate():  # 验证 POST 请求
        # 添加新条目,用户保护
        # if not current_user.is_authenticated:  # 如果当前用户未认证
        #     flash(login_manager.login_massage)  # 传入登录提示
        #     return redirect(url_for('login'))  # 重定向到登录页面
        # 获取表单数据
        title = request.form.get('title')  # 传入表单对应输入字段的 name 值
        year = request.form.get('year')
        # 验证数据
        if not title or not year or len(year) != 4 or len(title) > 60 or not only_number(year):
            flash('Invalid input.')  # 显示错误提示
            return redirect(url_for('index'))  # 重定向回主页
        # 保存表单数据到数据库
        movie = Movie(title=title, year=year)  # 创建记录
        db.session.add(movie)  # 添加到数据库会话
        db.session.commit()  # 提交数据库会话
        flash('Item created.')  # 显示成功创建的提示
        return redirect(url_for('index'))  # 重定向回主页
    movies = Movie.query.all()
    return render_template('index.html', movies=movies, form=form)
示例#29
0
def index():
    if request.method == 'POST':
        if not current_user.is_authenticated:
            return redirect(url_for('index'))

        title = request.form['title']
        rate = request.form['rate']

        if not title or not rate  or len(title) > 60:
            flash('Invalid input')
            return redirect(url_for('index'))

        movie = Movie(title=title, rate=rate)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')
        return redirect(url_for('index'))
    page = int(request.args.get('page', 1))
    per_page = int(request.args.get('per_page', 10))
    paginate = Movie.query.order_by(Movie.rate.desc()).paginate(page, per_page, error_out=False)
    movies = paginate.items

    return render_template('index.html', paginate=paginate, movies=movies)
示例#30
0
def forge():

    db.create_all()

    
    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'},
    ]

    for _ in movies:
        movie = Movie(title = _['title'], year = _['year'])
        db.session.add(movie)
    
    db.session.commit()
    click.echo("Generated Fake data~")