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)
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)
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)
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)
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)
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'
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)
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)
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)
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)
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)