Exemple #1
0
def show_detail():
    result = {}
    try:
        # 获取提交过来的电影id
        mid = request.values.get('mid', type=int)
        # 获取提交过来的城市名称
        city = request.values.get('city')
        # 获取影片详情信息(要显示的字段)
        movie = db.session.Query(Movies.id, Movies.backgroundpicture,
                                 Movies.director).get(mid)
        # 查询地区的相关信息
        districts = Cinemas.query.with_entities(
            Cinemas.district).filter(Cinemas.city == city).all()
        # 查询区域的影城信息
        cinemas = Cinemas.query.order_by(
            Cinemas.id).filter(Cinemas.city == city).all()
        hall_schedule = HallSchedule.query.filter(
            HallSchedule.cid == Cinemas[0].id).filter(
                HallSchedule.movie_id == mid).all()
        result.update(status=200,
                      msg='success',
                      movie=to_dict(movie),
                      districts=to_list(districts),
                      cinemas=to_list(cinemas),
                      hall_schedule=to_list(hall_schedule))
    except Exception as e:
        result.update(status=404, msg='fail')
    return jsonify(result)
Exemple #2
0
def show_detail():
    result = {}
    try:
        # 获取电影的id
        mid = request.values.get('mid', type=int)
        # 获取所选择的城市
        city = request.values.get('city')
        dist = request.values.get('dist')
        # 影院的id
        cid = request.values.get('cid', default=0, type=int)

        if mid and city:
            # 获取影片详情信息
            movie = db.session.query(
                Movies.id, Movies.backgroundpicture,
                Movies.director).filter(Movies.mid == mid).first()
            # 通过城市查询地区的相关的信息
            #  distinct去重
            # with_entities 过滤列 返回元组

            districts = Cinema.query.with_entities(distinct(
                Cinema.district)).filter(Cinema.city == city).all()

            # 通过城市查询所有影院的信息
            query = Cinema.query.order_by(
                Cinema.cid).filter(Cinema.city == city)
            # 判断是否上传了去区县的数据
            if dist:
                query = query.filter(Cinema.district == dist)
            cinemas = query.all()
            # 如果前端点击了影院使用选中影院
            cid = cid if cid else cinemas[0].cid
            # 通过电影的id和影院的id 就能查出所有的当前影院该影片的拍档情况
            # 日期  当天
            # 23,59,59
            now = datetime.datetime.now()
            # 今天0点
            today = now - datetime.timedelta(
                hours=now.hour, minutes=now.minute, seconds=now.second)
            last = today + datetime.timedelta(hours=23, minutes=59, seconds=59)

            hall_schedules = HallSchedule.query.filter(
                HallSchedule.cid == cid).filter(
                    HallSchedule.movie_id == mid).filter(
                        or_(HallSchedule.start_time >= now),
                        HallSchedule.start_time < last).all()
            result.update(status=200,
                          msg='success',
                          movie=movie,
                          districts=districts,
                          cinemas=to_list(cinemas),
                          hall_schedule=to_list(hall_schedules))

    except Exception as e:
        result.update(status=404, msg='error')
    return jsonify(result)
Exemple #3
0
def movies():
    result = {}
    try:
        movie = {}
        counts = Movies.query.with_entities(
            Movies.flag, func.count('*')).group_by(Movies.flag).all()
        hot_movies = Movies.query.filter(Movies.flag == 1).limit(5).all()
        show_movies = Movies.query.filter(Movies.flag == 2).limit(5).all()
        movie.update(counts=counts,
                     hot_movies=to_list(hot_movies),
                     show_movies=to_list(show_movies))
        result.update(status=200, msg='success', data=movie)
    except Exception as e:
        result.update(status=404, msg='fail')
    return jsonify(result)
Exemple #4
0
def cinema():
    result = {}
    try:
        page = request.values.get('page', default=1, type=int)
        size = request.values.get('size', default=10, type=int)
        dist = request.values.get('dist')
        sort = request.values.get('sort', default=0, type=int)
        city = request.values.get('city')
        # 影院查找索索栏数据
        keyword = request.values.get('keyword')
        if city:
            query = Cinemas.query.filter(Cinemas.city == city)
            if dist:
                query = query.filter(Cinemas.district == dist)

            if keyword:
                query = query.filter(Cinemas.name.like('%' + keyword + '%'))
            if sort:
                if sort == 1:
                    query = query.order_by(Cinemas.score.desc())
                else:
                    # 降序 排列
                    query = query.order_by(Cinemas.score)

            pagination = query.paginate(page=page,
                                        per_page=size,
                                        error_out=False)
            result.update(status=200,
                          msg='success',
                          cinemas=to_list(pagination.items))
        else:
            result.update(status=-1, msg='no param city')
    except Exception as e:
        result.update(status=404, msg='fail')
    return jsonify(result)
Exemple #5
0
def movies():
    result = {}
    try:
        movie = {}
        # 分组查出热门影片和热映的影片数量
        counts = Movie.query.with_entities(
            Movie.flag, func.count('*')).group_by(Movie.flag).all()
        # cursor = Movie.query.execute('SELECT COUNT(*) FROM movies GROUP BY flag')
        # 查热门影片的前5部
        hot_movies = Movie.query.filter(Movie.flag == 1).limit(5).all()
        # 查询即将上映的前5部
        show_movies = Movie.query.filter(Movie.flag == 2).limit(5).all()
        movie.update(counts=counts,
                     hot_movies=to_list(hot_movies),
                     show_movies=to_list(show_movies))
        result.update(status=200, msg='success', data=movie)
    except Exception as e:
        result.update(status=404, msg='fail')
    return jsonify(result)
Exemple #6
0
def movies():
    result = {}
    try:
        movie = {}
        #分组查询热门影片和热映的影片数量
        # counts=Movies.query.with_entities(Movies.flag,func.count('*')).group_by(Movies.flag).all()
        counts = Movies.query.excute('SELECT COUNT(' *
                                     ') FROM movies GROUP BY flag')
        #查询热门影片的前五部
        hot_movies = Movies.query.filter(Movies.flag == 1).limit(5).all()
        show_movies = Movies.query.filter(Movies.flag == 2).limit(5).all()
        movie.update(counts=counts,
                     hot_movies=to_list(hot_movies),
                     show_movies=to_list(show_movies))
        result.update(status=200, msg='success', data=movie)
    except:
        result.update(status=404, msg='fial')
    return jsonify(result)

    return '1111'
Exemple #7
0
def get_ares():
    result = {}
    ares = {}
    try:
        for key in keys:
            area_list = Area.query.filter(Area.key == key).all()
            if area_list:
                ares[key] = to_list(area_list)
        result.update(msg='success', status=200, ares=ares)
    except Exception as e:
        result.update(msg="查询失败", status=404)
    return jsonify(result)
Exemple #8
0
def movies():
    result = {}
    try:
        movie = {}
        # 分组查询热门影片和热映影片数量
        counts = Movies.query.with_entities(
            Movies.flag, func.count('*')).group_by(Movies.flag).all()
        # 查询热门影片的前5部
        hot_movies = Movies.qeury.filter(Movies.flag == 1).limit(5).all()
        # 查询即将上映影片的前5部
        show_movies = Movies.query.filter(Movies.flag == 2).limit(5).all()
        movie.update(counts=counts,
                     hot_movies=to_list(hot_movies),
                     show_movies=to_list(show_movies))
        result.update(status=200, msg='success~~', data=movie)
    except:
        result.update(
            status=400,
            msg='查询失败~~',
        )
    return jsonify(result)
Exemple #9
0
def show_detail():
    result = {}
    try:
        # 获取电影的id
        mid = request.values.get('mid', type=int)
        # 获取所选择的城市
        city = request.values.get('city')
        # 获取影片详情信息
        movie = db.session.query(Movie.id, Movie.backgroundpicture, Movie.director).filter(Movie.mid == mid).first()
        # 通过城市查询地区的相关的信息
        districts = Cinema.query.with_entities(distinct(Cinema.district)).filter(Cinema.city == city).all()
        #    通过城市查询所有影院的信息
        cinemas = Cinema.query.order_by(Cinema.cid).filter(Cinema.city == city).all()
        # 通过电影的id和影院的id 就能查出所有的当前影院该影片的拍档情况
        hall_schedules = HallSchedule.query.filter(HallSchedule.cid == cinemas[0].cid).filter(
            HallSchedule.movie_id == mid).all()
        result.update(status=200, msg='success', movie=movie,
                      districts=districts, cinemas=to_list(cinemas)
                      , hall_schedule=to_list(hall_schedules))
    except Exception as e:
        result.update(status=404, msg='error')
    return jsonify(result)
Exemple #10
0
def get_ares():
    result = {}
    # with_entities 过滤列
    # 相当于 db.session
    ares = {}
    try:
        for key in keys:
            # ares[key] = Area.query.with_entities(Area.name, Area.area_id).filter(Area.key == key).all()
            area_list = Area.query.filter(Area.key == key).all()
            if area_list:
                ares[key] = to_list(area_list)
        result.update(msg='success', status=200, ares=ares)
    except Exception as e:
        result.update(msg='查询失败', status=404)
    return jsonify(result)
Exemple #11
0
def cinemas():
    result = {}
    try:
        # 参数部分
        page = request.values.get('page', default=1, type=int)
        size = request.values.get('size', default=10, type=int)
        # sort 1 按评分降序   2 表示 按评分升序 0表示综合排序
        sort = request.values.get('sort', default=0, type=int)
        # 城市的区县
        dist = request.values.get('dist')
        city = request.values.get('city')
        # 搜索电影院的名称
        keyword = request.values.get('keyword')
        if city:
            # 根据城市分页加载数据
            # 返回一个新的query对象
            query = Cinema.query.filter(Cinema.city == city)
            # cinemas = Cinema.query.filter(Cinema.city == city).all()
            # to_list(cinemas)
            #    选择了区县
            if dist:
                query = query.filter(Cinema.district == dist)
                #  影院名称搜索
            if keyword:
                query = query.filter(Cinema.name.like('%' + keyword + '%'))

            if sort:
                # 升序
                if sort == 1:
                    query = query.order_by(Cinema.score.desc())
                else:
                    #  降序
                    query = query.order_by(Cinema.score)
            paginate = query.paginate(page=page,
                                      per_page=size,
                                      error_out=False)
            result.update(status=200,
                          msg='success',
                          cinemas=to_list(paginate.items))
        else:
            result.update(status=-1, msg='no param city')

    except Exception as e:
        result.update(status=404, msg='fail')
    return jsonify(result)