【发布时间】:2020-12-07 19:35:04
【问题描述】:
我想从 React 获取数据到 Django 后端并请求 url 中的参数 'request.GET.get("",None)' [或替代方案?]。最好的情况是多个参数或正文的解决方案。 每个教程都只显示模型的获取,但是我在views.py 中找到的所有对request 或create() 参数的引用(用视图中的值做其他事情)都不起作用。
//Form.js
var url = 'http://127.0.0.1:8000/api/'+'?name='+name+'/'
axios.post(url, { title: title,
value1: value1,
value2: value2,
})
我想在我的 views.py 中从 url 中抓取“名称”(在接下来的步骤中,我也需要来自正文的“参数”)以对这些值进行进一步的操作。
#views.py
def my_view(request, name):
request_name = request.GET.get("name", None)
我认为引用参数“名称”的网址可能存在问题,
from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
path('api-auth/', include('rest_framework.urls')),
path('admin/', admin.site.urls),
path('api/', views.my_view ),
path('api/<name>/', views.my_view ),
#path('api/(?P<name>\d+)/', views.my_view),
#re_path('api/<name>)/', views.my_view , name='name'),
#re_path('api/(?P<name>\d+)/', views.my_view , name='name'),
#path('api/<name>/)', views.my_view , name='name'),
#re_path(r'^api/<name>/$', views.my_view),
因为,
当我尝试时:
获取 url 'http://127.0.0.1:8000/api/'+name+'/' -> 不带 '?name='
使用这个 urls.py
path('api/<name>/', views.my_view )
我可以在 views.py 中打印(名称) -> 结果是正确的名称
def my_view(request, name):
#request_name = request.GET.get("name", None)
print(name)
当我在 url 中有 '?name=' 时,print(name) 不起作用。
【问题讨论】:
-
请查看 DRF 过滤:docs。你需要的是query parameters。关于CRUD in Django Rest Framework and React的好教程。
-
我知道我还没有明白很多。我仍然会这样做。