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)
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)
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("导入数据完成")
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)
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)
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)
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)
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()
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('数据导入完成')
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)
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)
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)
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)
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() #创建测试命令运行器 —— 用来触发自定义命令
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)
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'))
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.')
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)
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.')
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() # 创建测试命令运行器,用来触发自定义命令
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)
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)
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)
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)
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('数据已导入。')
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!')
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)
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)
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)
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~")