【问题标题】:Django + React -> fetch / axiosDjango + React -> 获取 / axios
【发布时间】: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) 不起作用。

【问题讨论】:

标签: reactjs django api


【解决方案1】:

尝试 var url = 'http://127.0.0.1:8000/api/'+name+'/'; ?name 的用法在这里不正确,因为您将名称作为 get 参数提供。 在这里使用 get 参数没有意义。您必须直接调用网址。

另一个提示:你应该在django模板中通过以下方式生成url:

{% url 'name' name %}

【讨论】:

  • 谢谢,我已经有了这个解决方案,可以这么说,并没有注意到它。
猜你喜欢
  • 2018-09-03
  • 1970-01-01
  • 2023-01-09
  • 2019-05-11
  • 1970-01-01
  • 2022-01-04
  • 2020-06-19
  • 2021-07-27
  • 2018-11-14
相关资源
最近更新 更多