flask转账记录的显示、模型类的创建

入账出账都显示如下图
在这里插入图片描述

用户表、转账记录表
# 用户表
class UserModel(db.Model):
    id = db.Column(db.Integer,autoincrement=True,primary_key=True,comment='用户id')
    name = db.Column(db.String(20),default='',comment='用户名字')
    phone = db.Column(db.String(20),default='',comment='用户手机号')
    create_time = db.Column(db.DateTime,default=datetime.datetime.now,comment='创建时间')
    dian = db.Column(db.String(20),default='我的商店',comment='商店地址')
    money = db.Column(db.Integer,default=1000,comment='用户余额')
    zhuanzhang = db.relationship('Zhuan',backref='user')

# 转账记录表
class Zhuan(db.Model):
    id  = db.Column(db.Integer,autoincrement=True,primary_key=True,comment='用户id')
    create_time = db.Column(db.DateTime,default=datetime.datetime.now,comment='创建时间')
    money = db.Column(db.Integer,default=0,comment='转账金额')
    user_id = db.Column(db.Integer,db.ForeignKey('user_model.id'))
    status = db.Column(db.Integer,default=0,comment='0转出 4转入')
    name = db.Column(db.String(20),default='',comment='要转入用户的名字')
    name2 = db.Column(db.String(20),default='',comment='要转出用户的名字')
    # whoid 是要转入哪个用户的id 也可以设置一个外键,也关联用户表
    whoid = db.Column(db.Integer,default=0,comment='转入用户的id')
添加转账记录,展示转账记录
from sqlalchemy import or_
class ZhuanView(Resource):
	# 添加转账记录
    @login
    def post(self):
        user_id = g.user_id
        res = reqparse.RequestParser()
        res.add_argument('mobile')
        res.add_argument('money',type=int)
        args = res.parse_args()
        userdata = UserModel.query.filter(UserModel.phone==args['mobile']).first() # 转入用户id
        userdata1 = UserModel.query.filter(UserModel.id==user_id).first() # 转出用户id
        name = userdata.name   # 转入用户的名
        name2 = userdata1.name # 转出用户的名

        z = Zhuan(
            money=args['money'],
            user_id=user_id,
            name = name,
            name2 = name2,
            whoid = userdata.id
        )
        userdata1.money -=args['money']
        userdata.money +=args['money']
        db.session.add(z)
        db.session.commit()
        return jsonify({
            'code':200,
            'msg':'ok',
        })
    # 获取转账记录
    @login
    def get(self):
        user_id = g.user_id
        '''另一种'''
        # 过滤出 user_id 或 whoid 字段含有用户id(user_id)的记录
        zhuandata = Zhuan.query.filter(or_(Zhuan.user_id == user_id,Zhuan.whoid==user_id)).all()
        # zhuandata = Zhuan.query.all()
        zhuanlis = []
        # 因为上面已经过滤出用户的转入、转出记录了
        # 如果模型类里的字段user_id 与用户的id(方框里面的)不相同,说明是转入的,改变其字段status状态
        for i in zhuandata:
            if i.user_id != user_id:
                i.status = 4 # 4>>>>>说明是转入的金额
            z = {
                'time':str(i.create_time),
                'money':i.money,
                'status':i.status,
                'name2':i.name2,  # 转出的名字
                'name':i.name, # 转入的名字
            }
            zhuanlis.append(z)
        return jsonify({
            'code':200,
            'data':zhuanlis,
            'msg':'ok'
        })

api.add_resource(ZhuanView,'/zhuan')


根据 zhuanlis 里的status的状态不同,即可在前端显示:是转入还是转出
关键是获取转账记录的时候,判断user_id 字段 ,是否与当前用户的id相等,
若不相等=》》》说明是其他用户转给当前用户
若相等=》》》》说明是当前用户转给其他用户

在这里插入图片描述
如上图:若当前用户的id是 “2”
第1、2条数据说明是转给其他用户
第3、5条数据说明是其他用户准入进来的 =》status=4

看不懂的评论啊,亲们!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值