首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过url与django rest api进行交互?

如何通过url与django rest api进行交互?
EN

Stack Overflow用户
提问于 2018-07-27 20:56:56
回答 3查看 44关注 0票数 1

我知道Django rest框架是用于以编程方式与Django服务器进行交互的,但我仍然不明白的一件事是如何进行交互。

我想要做的是让我的客户端应用程序(移动应用程序)将数据(以某种方式)发送到Django服务器,以便基于变量创建/检索数据,显然这必须通过URL完成,因为将不会有与API的直接GUI交互。(除非我弄错了,我很可能弄错了)

我已经阅读了官方文档,并一直按照教程学习到最后,仍然不明白这是如何工作的。

我所要求的只是一个快速而简单的解释,因为我已经到处寻找,但还没有找到一个足够简单的解释来掌握这一切是如何工作的核心概念。

EN

回答 3

Stack Overflow用户

发布于 2018-07-28 01:46:37

我认为您正在寻找的是JSONResponse和相关对象:

这将允许您发送JSON来响应请求。

代码语言:javascript
运行
复制
from django.http import JsonResponse
def my_view_json(request):    
    response = JsonResponse({'foo': 'bar'})
    return response

如果您的模板或网页需要向视图发出请求并指定不同的参数,则可以通过添加POST变量(examples)来实现。可以像这样在视图中解析这些内容:

代码语言:javascript
运行
复制
def myView(request):
    my_post_var = request.POST.get('variable_name', 'default_value')
    my_get_var = request.GET.get('variable_name', 'default_value')

然后,您可以解析以任何您喜欢的方式发送的内容,并决定如何处理它。

票数 0
EN

Stack Overflow用户

发布于 2018-08-03 02:54:52

基本上,您定义了对其执行Get/POST/PUT请求的URLS,并且可以向其发送数据。

例如: urls.py

代码语言:javascript
运行
复制
    from django.conf.urls import url,include
    from app import views
urlpatterns = [
 url(r'^(?i)customertype/$',views.CustomerViewSet.as_view()),
 url(r'^(?i)profile/$', views.Save_Customer_Profile.as_view()),
 url(r'^(?i)customer_image/$', views.Save_Customer_Image.as_view()),
]

现在,只要用户向example.com/profile ==>发送请求,就会根据方法类型在Save_Customer_Profile视图中收到该请求,Save_Customer_Profile如下所示:

代码语言:javascript
运行
复制
class Save_Customer_Profile(APIView):
    """Saves and Updates User Profile!"""
    def get(self, request, format=None):
       return AllImports.Response({"Request":"Method Type is GET Request"})

    def post(self, request, format=None):
        return AllImports.Response({"Request":"Method Type is Post Request"})

    def put(self,request, format=None):
        return AllImports.Response({"Request":"Method Type is Put Request"})
票数 0
EN

Stack Overflow用户

发布于 2019-09-19 00:56:35

我认为OP指的是如何以编程方式执行GET/POST请求。在这种情况下,这样做就足够了(值是虚拟的):

获取:

代码语言:javascript
运行
复制
import requests

r = requests.get('http://localhost:8000/snippets/')

print(r.json())
print(r.status_code, r.reason)

帖子:

代码语言:javascript
运行
复制
data = {'code': 'print(" HELLO !!!")', 'language': 'java','owner': 'testuser'}
r = requests.post('http://localhost:8000/snippets/', data=data,  auth=('testuser', 'test'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51558466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档