vue框架前后端分离项目之区间过滤、搜索及支付宝支付功能等相关内容-130

摘要:
'+order_StringprintreturnResponse-6前端发送一个post请求,测试生成的付款链接,并完成付款

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请求,测试生成的支付链接,完成支付

 

 

免责声明:文章转载自《vue框架前后端分离项目之区间过滤、搜索及支付宝支付功能等相关内容-130》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇学习pycharm----自动化接口Android手机测试环境搭建下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

uni-app(一)环境准备,项目架构

安装 HBuilderX 安装插件,结合自己的场景,酌情安装 创建项目   配置开发者工具路径(我这里是微信,请酌情处理) 在这里有一个小妙招,项目在开发者工具运行起来后,隐藏掉 HBuilderX,用vs code打开项目,修改代码,保存后,一样是实时更新视图的,就可以继续使用 习惯已久的 vs code了 由于uni-app使用vue框架开发的...

vue中如何生成组件的文档说明

针对vue组件,编写对应的组件文档 使用vuepress直接通过markdown文件去动态生成对应的组件演示和代码预览以及说明。 准备工作 先安装vuepress,npm i vuepress -D。 接着安装vuepress-plugin-demo-container,npm i vuepress-plugin-demo-container -D。 整...

在VUE中使用过滤器(Filters)报[Vue warn]: Error in render: "TypeError: Cannot read property 'toFixed' of undefined"解决办法

问题背景 在使用VUE过滤器的时候,遇到控制台报错 : vue.esm.js?efeb:628 [Vue warn]: Error in render: "TypeError: Cannot read property 'toFixed' of undefined" 查到undefined是在过滤器器中报出错误的moneyFilters.js 报错原因是因...

Vue子组件和父组件、子组件调用父组件的方法、父组件调用子组件方法、子组件与父组件间的传值

 Vue子组件和父组件、子组件调用父组件的方法、子组件与父组件间的传值: 第一: 子组件和父组件定义:     父组件:DeptMgrTop.vue     子组件:DeptMgrBody.vue(<top-body></top-body>)和DeptMgrBodyUser.vue(<top-bodyUser><...

vue 解决jsonp跨域

在Vue中使用jsonp 参考链接:https://blog.csdn.net/m0_38134431/article/details/87930647 在vue中使用vue-jsonp 参考链接:https://www.jianshu.com/p/10901e13d794 参考链接:https://www.jianshu.com/p/e4379e6690...

vue开发环境和生产环境的跨域

前端在生产环境跨域 一,开发环境跨域 1.配置代理 如果使用vue-cli搭建的项目,可以直接使用proxyTable模块,项目框架已经集成在config -> index.js 页面配置proxyTable,如下: proxyTable: { '/api':{ //开发坏境下:target 里的地址是你跨域请求的...