Flask综合案例展示二手车信息页、详情页和用户浏览记录、收藏信息

本文通过Flask框架展示了如何创建二手车信息页、详情页,利用MySql存储收藏信息,并使用redis记录用户浏览记录。介绍了flask-sqlalchemy的多对多关系处理,包括添加、查询关系,以及redis的使用来保存用户浏览历史。
摘要由CSDN通过智能技术生成

展示信息页

在这里插入图片描述
先写思路:

  • 根据图我们可以得到需要返回的数据
  • 在models的车类中添加方法返回我们需要的数据
  • 然后根据前端查询车的品牌、模型等各种信息不同展示数据,这里只简单写了品牌和模型

models.py文件添加方法:

class Car(db.Model):
	...
    def to_list_dict(self):
        # 返回列表页的数据
        # 需要的数据:品牌,模型 detail
        # 价格,年份,公里数  id  默认图片
        car_obj_dict = {
   
            'brand': self.brande.name,
            'model': self.model.name,
            'detail': self.model.detail,
            'price': self.price,
            'car_register_time': self.annual_datetime,
            'car_distance': self.car_distance,
            'car_id': self.id,
            # 默认图片
            'index_image_url': QINIUURL+self.index_image_url
        }
        return car_obj_dict

然后是展示数据的函数:

@api.route('/cars')
def cars_list_info():
    # 将是一个get请求,返回车辆列表
    # 有可能为空
    brand = request.args.get('brand')
    car_model = request.args.get('model')
    print(request.args.get('price'))

    if len(brand) == 0 and len(car_model) == 0:
        cars_lists = Car.query.all()
        print(cars_lists)
        ret_data_list = []
        for each in cars_lists:
            # 调用对象的方法来实现转dict
            ret = each.to_list_dict()
            print(ret)
            # 添加进字典
            ret_data_list.append(ret)
        print(ret_data_list)
        return jsonify(data=ret_data_list)

    elif len(brand) == 0 and len(car_model) !=0:
        # 只有型号没有品牌
        car_lists = Car.query.all()
        ret_data_list = []  # todo 需要返回的数据
        for each in car_lists:
            if each.brande.car_model == car_model:
                print(car_model)

        return jsonify(data=ret_data_list)

    elif len(brand) != 0 and len(car_model) ==0:
        # 只有品牌
        brand_id = Brande.query.filter_by(name=brand).first().id
        cars_lists = Car.query.filter_by(brande_id=brand_id).all()
        ret_data_list = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值