场景
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
网友评论