初识Django REST framework

前言

其实刚开始学习Django的时候听到过REST framework这个词,当时上课昏昏欲睡,只是大概有一个印象而已,然后就忽略过去了…
知道最近打算重新写一下以前使用Django写的博客,然后发现当初写的代码好乱,然后就是一顿操作下来,遇到一个问题:
当我想使用一个路由通过ajax进行不同的操作的时候会变得特别麻烦,这个时候才多多少少想起来REST framework这个框架了

于是就找来学了..

安装所需

下面这三个是官网推荐的安装的:

pip install djangorestframework
pip install markdown  # Markdown support for the browsable API.
pip install django-filter # Filtering support

环境

  • Python (3.6.2)
  • Django (2.1.7)
  • djangorestframework (3.9.2)
  • mysql (5.6)

    关于Django的版本,使用1.x的版本也是可以的,1.x和2.x的版本在urls配置上有略微的差异,这个无关紧要

对项目进行基本的配置

  • 创建项目
    这里我就不使用命令创建了(windows直接File-> New Project -> Django就好了)…记得创建项目的同时也要创建app,这里我就以创建的项目名为:REST为例子了~

  • Settings配置

    # 我们需要将rest_framework 注册到settings里面
    INSTALLED_APPS = [
      ...
      'rest_framework',
    ]
    
  • models配置

    # 我们这个只是进行演示,测试使用,所以就写两个字段
    class User(models.Model):
      user = models.CharField(max_length=32)
      pwd = models.CharField(max_length=32)
      class Meta:
          db_table = 'user'    # 不写这个在你迁移生成表的时候总会带你的app的名字的前缀,我不喜欢所以就给他重新定义一下
    

    记得进行迁移
    如果你在迁移的时候出现错误的话,看一下REST下的init里面你对数据库进行连接了没有

  • urls配置

    • REST下的urls配置
      urlpatterns = [
          path('',include("app.urls",namespace='index')),
      ]
      
    • app下的urls配置
      from app import views
      app_name = 'index' # 因为是2.x的版本 使用命名空间的话在app的urls里面需要写上这个声明一下
      urlpatterns = [
        path('',views.GetMseeageView.as_view(),name='add')
      ]
      

我看网上还有一个序列化的文件这里面暂时不写(我还没弄懂- _ -! )

  • Views配置

      from django.http import JsonResponse
      from django.shortcuts import render
      # Create your views here.
      from rest_framework.views import APIView
    
      from app.models import User
    
      class GetMseeageView(APIView):
    
          def get(self,request):
              return render(request,'index.html')
    
          def post(self, request):
              post = request.POST
              name = post.get('name')
              pwd = post.get('pwd')
              print(name,"---",pwd)
              u = User()
              u.user = name
              u.pwd = pwd
              u.save()
              return JsonResponse(data={'sta':200,"msg":"添加成功"})
    
  • 模板配置

          <input type="text" id="name" name="name">
          <input type="text" id="pwd" name="pwd">
          <input type="submit" id="tj" value="提交">
    
      </body>
      <script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.js"></script>
      <script>
          $(function () {
              $("#tj").click(function () {
                  var name = $('#name').val()
                  var pwd = $("#pwd").val()
                      $.ajax({
                          url:"{% url 'index:add' %}",
                          type:'post',
                          data:{'name':name,'pwd':pwd},
                          heads : {'content-type' : 'application/x-www-form-urlencoded'},
                          dataType:'json',
                          success:function(data){
                              console.log(data)
                          }
                      })
              })
    
          })
      </script>
    

结束

在控制台输入python manage.py runserver后,我们直接访问http://127.0.0.1:8000就可以看到我们的页面了,然后F12打开控制台,点击Console,然后我们在输入框输入内容之后点击提交按钮,在控制台会看到返回的内容{sta: 200, msg: "添加成功"},这样一个简单的REST framework 就完成了~~

本博客所有文章如无特别注明均为原创。作者:止语复制或转载请以超链接形式注明转自 止语博客
原文地址《初识Django REST framework

相关推荐

发表评论

路人甲
看不清楚?点图切换

网友评论(0)