django进阶必备(二)如何用django实现restful接口 - Go语言中文社区

django进阶必备(二)如何用django实现restful接口


先来介绍下django

Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

然后百度下django的官方文档,首先映入眼帘的是下面这句话

Django makes it easier to build better Web apps more quickly and with less code.

大致意思是django是用更少的代码简单快速搭建web应用

那么什么是restful呢?

REST全称是Representational State TransferREST指的是一组架构约束条件和原则。" 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。

基于restful的http请求CURD

  1. ->Create    post
  1. ->Update   put
  1. ->Read     get
  1. ->Delete    delete

我们这里掠过django的orm操作

直接上url与类视图

跟着我的步骤走

Step1  python manage.py startapp demo

Step2  进入demo的views.py引入下边的包
from django.views import View
from django.http import JsonResponse,QueryDict
from django.views.decorators.csrf import csrf_exempt

 

class RestApi(View):
    @csrf_exempt
    def dispatch(self, request, *args, **kwargs):
        if request.method.lower() in self.http_method_names:
            handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
        else:
            handler = self.http_method_not_allowed
        return handler(request, *args, **kwargs)
    def get(self,request):
        value = request.GET.get("value","")
        return JsonResponse({"status":200,"data":"这是GET请求"})
    def post(self,request):
        value = request.POST.get("value", "")
        return JsonResponse({"status":200,"data":"这是POST请求"})
    def put(self,request):
        values = QueryDict(request.body)
        return JsonResponse({"status":200,"data":"这是PUT请求"})
    def delete(self,request):
        values = QueryDict(request.body)
        return JsonResponse({"status":200,"data":"这是DELETE请求"})

Url规划 计划采用多级路由

子路由urls.py代码

from django.urls import path
from demo.views import RestApi
urlpatterns = [
    path('rest_api/', RestApi.as_view()),
]

附上:http 状态码

2XX 200请求成功

3XX 301 302 重定向

4XX 404 找不到页面 403 fordiden 拒绝访问

5XX 500 服务器内部错误 502 bad gateway 服务器网关错误

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/mzm5466/article/details/100272969
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 00:35:13
  • 阅读 ( 893 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢