django

一、图片验证码生成

转base64在前端无法显示问题

def imgCode(request):
    stream = BytesIO()  # 开辟一块内存空间,不用写在外存,减少读写操作
    img, code = create_validate_code()
    img.save(stream, "PNG")
    request.session["CheckCode"] = code
    binary_data = stream.getvalue()
    base64_data = base64.b64encode(binary_data)  # 还是一个bypt ,会多b''把数据包起来
    base64_data_str = str(base64_data)
    res = "data:image/jpg;base64,%s" % (base64_data_str[2:-1])#去除b''的包裹,这样才能在前台显示
    data = {"msg": "ok", "code": 0, "res": res}
    return HttpResponse(json.dumps(data))

二、ajxa请求Content-Type问题,使用axios是默认application/json;charset=UTF-8,故需要引入qs参数格式化包,,$.ajax,不需要

def login(request):
    # axios 传过来的数据,默认是json(Content-Type: application/json;charset=UTF-8)request.POST是空的QueryDict:{},原始的byte类型字符都在request.body中,通过request.body.decode()转成json字符串,在json.loads解码下
    if request.method == "POST":
        print(request.POST)
        params = json.loads(request.body.decode())
        name = params.get("name")
        password = params.get("password")
        res = models.User.objects.filter(Q(name=name) and Q(password=password))
        if res:
            data = {"msg": "登录成功", "code": 0, "res": ""}
        else:
            data = {"msg": "用户名密码不正确", "code": 1, "res": ""}
        return HttpResponse(json.dumps(data))
    else:
        return render(request, "web/login.html")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值