美文网首页
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