Flask 构建微电影视频网站(7)

电影模块实现

上映预告

@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 }}

    你可能感兴趣的:(Flask 构建微电影视频网站(7))