美文网首页
Django前后端分离,URL传参的两种方式

Django前后端分离,URL传参的两种方式

作者: 明灭_ | 来源:发表于2019-04-19 15:49 被阅读0次

    场景

    uni-app + django,前后端分离,后端获取前端传递的参数

    两种方法

    1. 参数附着在接口地址后的查询串中
    此时后端接口地址:localhost:8000/getData

    • 前端代码:
      api.js
    getData: (params) => {
        uni.request({
            url: BASE_URL + '/getData?params=' + params, // 后端接口地址
            method: 'GET',
            success: (res) => {...}
        })
    }
    
    • 后端代码:
      urls.py
    urlpatterns = [
        ...
        re_path('getData/',  views.getData),
        ...
    ]
    

    views.py

    def getData(request):
      if method == 'GET':
          params = request.GET.get('params')  # 此时即可获取参数params
          ...
    

    2. 使用命名正则表达式组来捕获URL,并且将其作为关键字参数传给视图
    (关于django中的url命名组,详见 官方文档

    • 前端代码:
      api.js
    getData: (params) => {
        uni.request({
            url: BASE_URL + '/getData/' + params, // 后端接口地址
            method: 'GET',
            success: (res) => {...}
        })
    }
    
    • 后端代码:
      urls.py
    urlpatterns = [
        ...
        re_path('getData/(?P<params>.*)',  views.getData),
        ...
    ]
    

    (?P<params>.*)的一些解释:

    • 小括号 () 括起来的是一个正则表达式组
    • params 是组的名字,和函数的参数名相同
    • .* 是此处的正则匹配模式,意思是匹配所有的字符任意次
      views.py
    def getData(request, params):
        # 请求对应后端接口时,django会自动从url中解析出params
    

    相关文章

      网友评论

          本文标题:Django前后端分离,URL传参的两种方式

          本文链接:https://www.haomeiwen.com/subject/hdtowqtx.html