前言
其实刚开始学习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') ]
- REST下的urls配置
我看网上还有一个序列化的文件这里面暂时不写(我还没弄懂- _ -! )
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 就完成了~~