电影模块实现
上映预告
@home.route("/animation/")
def animation():
"""
首页轮播动画
"""
data = Preview.query.all()
for v in data:
v.id = v.id - 1
return render_template("home/animation.html", data=data)
修改app/templates/home/animation.html
{% for v in data %}
{{ v.title }}
{% endfor %}
标签筛选-电影分页
@home.route("//", methods=["GET"])
@home.route("/", methods=["GET"])
def index(page=None):
"""
首页电影列表
"""
tags = Tag.query.all()
page_data = Movie.query
# 标签
tid = request.args.get("tid", 0)
if int(tid) != 0:
page_data = page_data.filter_by(tag_id=int(tid))
# 星级
star = request.args.get("star", 0)
if int(star) != 0:
page_data = page_data.filter_by(star=int(star))
# 时间
time = request.args.get("time", 0)
if int(time) != 0:
if int(time) == 1:
page_data = page_data.order_by(
Movie.addtime.desc()
)
else:
page_data = page_data.order_by(
Movie.addtime.asc()
)
# 播放量
pm = request.args.get("pm", 0)
if int(pm) != 0:
if int(pm) == 1:
page_data = page_data.order_by(
Movie.playnum.desc()
)
else:
page_data = page_data.order_by(
Movie.playnum.asc()
)
# 评论量
cm = request.args.get("cm", 0)
if int(cm) != 0:
if int(cm) == 1:
page_data = page_data.order_by(
Movie.commentnum.desc()
)
else:
page_data = page_data.order_by(
Movie.commentnum.asc()
)
if page is None:
page = 1
page_data = page_data.paginate(page=page, per_page=8)
p = dict(
tid=tid,
star=star,
time=time,
pm=pm,
cm=cm,
)
return render_template(
"home/index.html",
tags=tags,
p=p,
page_data=page_data)
修改index.html
电影标签
{% for v in tags %}
{{ v.name }}
{% endfor %}
电影星级
{% for v in range(1,6) %}
{{ v }}星
{% endfor %}
上映时间
最近
更早
播放数量
从高到底
从低到高
评论数量
从高到底
从低到高
{% for v in page_data.items %}
{{ v.title }}
{% for val in range(1,v.star+1) %}
{% endfor %}
{% for val in range(1,5-v.star+1) %}
{% endfor %}
播放
{% endfor %}
{{ pg.page(page_data,'home.index') }}
电影搜索-搜索分页
@home.route("/search//")
def search(page=None):
"""
搜索
"""
if page is None:
page = 1
key = request.args.get("key", "")
movie_count = Movie.query.filter(
Movie.title.ilike('%' + key + '%')
).count()
page_data = Movie.query.filter(
Movie.title.ilike('%' + key + '%')
).order_by(
Movie.addtime.desc()
).paginate(page=page, per_page=10)
page_data.key = key
return render_template("home/search.html", movie_count=movie_count, key=key, page_data=page_data)
修改search.html
{% for v in page_data.items %}
{{ v.title }}播放影片
{{ v.info }}
{% endfor %}
{{ pg.page(page_data,'home.search') }}
电影详情-电影播放
@home.route("/play//", methods=["GET", "POST"])
def play(id=None):
"""
播放电影
"""
movie = Movie.query.join(Tag).filter(
Tag.id == Movie.tag_id,
Movie.id == int(id)
).first_or_404()
return render_template("home/play.html", movie=movie, )
片名
{{ movie.title }}
标签
{{ movie.tag.name }}
片长
{{ movie.length }}
地区
{{ movie.area }}
星级
{% for val in range(1,movie.star+1) %}
{% endfor %}
{% for val in range(1,5-movie.star+1) %}
{% endfor %}
上映时间
{{ movie.release_time }}
播放数量
{{ movie.playnum }}
评论数量
{{ movie.commentnum }}
影片介绍
{{ movie.info }}