zoukankan      html  css  js  c++  java
  • vue框架前后端分离项目之区间过滤、搜索及支付宝支付功能等相关内容-130

    1 区间过滤

    # 方式一:自己写过滤类,配置到视图类的
    filter_backends = [自己写的过滤类]
    # 方式二:借助django—fileter
    # 1 写一个类:
       from . import models
       from django_filters import filters
       class CourseFilterSet(FilterSet):
           # 区间过滤:field_name关联的Model字段;lookup_expr设置规则;gt是大于,gte是大于等于;
           min_price = filters.NumberFilter(field_name='price', lookup_expr='gte')
           max_price = filters.NumberFilter(field_name='price', lookup_expr='lte')
           class Meta:
               model = models.Course
               # 如果过滤条件仅仅就是Model已有的字段,方式一更好
               # 但是方式二可以自定义过滤字段
               fields = ['course_category','min_price', 'max_price']
               
               
       # 2 配置到视图类上
      filter_backends = [DjangoFilterBackend]
      filter_class = CourseFilterSet

     

    2 搜索功能

    1 搜索的后端接口
    -课程标题(要有搜的关键字)
       -课程简介(要有搜的关键字)
       -专业的搜索引擎(ES:专注于大数据量的搜索)
    2 这次咱们写的就是去数据库查
    from rest_framework.filters import SearchFilter
    class CourserSearchView(GenericViewSet,ListModelMixin):
       queryset = Course.objects.filter(is_delete=False, is_show=True).order_by('-orders')
       serializer_class =CourseSerializer
       # 内置搜索
       filter_backends = [SearchFilter]
       search_fields = ['name', 'brief']
       pagination_class = BasicPagination

    3 支付宝支付

    1 使用在线支付功能
       -支付宝支付(讲它)
       -微信支付
       -银联支付(用的比较少)
       
       
    2 使用支付宝支付
    -商户号(营业执照)----》沙箱环境(测试)
      -appkey:             测试的key
           -secretkey:
           
           
           
    3 对称加密和非对称加密
    -对称加密:加密密码和解密密码是一个
       -非对称加密:公钥和私钥
      -公钥加密(即便截获到加密内容和公钥,只要没有私钥,也解不出来)
           -私钥解密

           
    4 商家号(营业执照申请),沙箱环境测试
    用户名:babdgw8208@sandbox.com
      密码:111111
     用户号:测试账号
      沙箱版的支付宝
           用户名:bfxtlv8393@sandbox.com
           密码:111111
           支付密码:111111
       
       
       
    5 生成公钥,私钥
    -借助于支付宝提供的工具:https://opendocs.alipay.com/open/291/105971#LDsXr
        -用这个工具生成公钥和私钥
        -把公钥配置在支付宝的网站上----》生成一个支付宝公钥

    6 前端点击立即支付,发送请求
    -post请求,数据库写入操作
    -生成一个订单(订单表插入数据,订单状态为待支付)
       -生成支付链接,返回给前端
       -前端拿到支付链接,跳转到支付页面(支付宝页面)
       -用户扫描付款(输入用户名密码付款)
       -支付宝收到付款成功,get回调咱们的系统
       -支付宝还会发送post回调,咱们系统接收到以后,修改订单状态


       
     
    7 流程:
    -1 生成私钥和公钥
       -2 把公钥配置在沙箱环境
       -3 复制出支付宝公钥,粘贴在项目中
       -4 复制出私钥粘贴在项目中
       -5 视图类
           class PayView(APIView):
               def post(self,request,*args,**kwargs):
                   subject = "充气娃娃"
                   # 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_string
                   order_string = alipay.api_alipay_trade_page_pay(
                       out_trade_no="20161112",
                       total_amount=1000,
                       subject=subject,
                       return_url="https://www.baidu.com",
                       notify_url="https://example.com/notify"  # 可选, 不填则使用默认notify url
                  )
                   print(order_string)
                   pay_url=gateway+ '?' + order_string
                   print(pay_url)
                   return Response({'pay_url':pay_url})
        -6 前端发送post请求,测试生成的支付链接,完成支付

     

     

  • 相关阅读:
    UVA 10905
    UVA 10859 树形DP
    LA 4794 状态DP+子集枚举
    LA 3695 部分枚举
    UVA 11825 状态压缩DP+子集思想
    UVA 10891 区间DP+博弈思想
    HDU 5239 上海大都会 D题(线段树+数论)
    HDU 5242 上海大都会 G题
    HDU 5241 上海大都会 F题
    P1359 租用游艇
  • 原文地址:https://www.cnblogs.com/usherwang/p/14284295.html
Copyright © 2011-2022 走看看