Django_rest框架实践项目(一)入门helloWord项目的创建和代码的解释

2021-03-02 14:39:59 浏览数 (1)

目录

  • 创建项目

创建项目

在django_venv 虚拟环境里面创建一个helloworld项目,并且创建一个quickstartapp ,也就是再创建一个app。 ,并且连接数据库,现在是连接mysql数据库,将app映射到数据库里面

不需要将这个新创建的app注册到setting里面,这个和django项目不一样,但是要注册 ‘rest_framework’,

1 应该映射用户的model,但是django已经将自带的映射好了。所以,用户表的model就不需要自己建设这个模型了。

2 在quickstartapp 这个app下面创建serializers.py文件

里面的内容为

代码语言:javascript复制
from django.contrib.auth.models import User, Group
#   在虚拟环境下要安装rest_framework这个框架
from rest_framework import serializers


#    以后这个文件里面的都使用类进行定义。     Serializer这个类的作用是进行验证,用户的验证,
#    还有一个是view与model之间要联系,需要进行转换
#     这个文件里面的所有的类都是以Serializer结尾,这个是潜规则,命名规范,关于用户的这个类,
#     名字以后就是UserSerializer,


#    不管什么项目里面,都是这个名字,应为是命名规范
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User    这个代码告诉我,这个序列系用的模型就是用户模型
        fields = ('id', 'url', 'username', 'email', 'first_name', 
        'last_name', 'date_joined', 'groups',)


class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('id', 'url', 'name', 'user_set')

serializers.HyperlinkedModelSerializer自己定义的类继承了这个,Hyperlinked是超链接的意思,Model是模型的意思,所以这个父类就是超链接模型序列 ,前段一点击一个链接进行了跳转,就是通过继承这个实现的。

自己创建的一个类,里面没有内容,但是还有一个内类,这个就是嵌套类,这个嵌套类的名字是meta,这个是不可以改变的。这个内类就是元数据,就是解释外类是干什么用的

字段里面的url,就是继承的HyperlinkedModelSerializer里面的,不是用户模型里面的字段

这个文件里面的代码是从官网复制过来的,只是自己做了一个修改

3 第三步开始写view.py文件

from django.shortcuts import render

from django.contrib.auth.models import User, Group from rest_framework import viewsets from quickstartapp.serializers import UserSerializer, GroupSerializer

UserViewSet也是命名规范,记住就可以,ModelViewSet是父类 ViewSet是 视图集合 class UserViewSet(viewsets.ModelViewSet): “”" 查看、编辑用户数据的API接口。 “”" queryset = User.objects.all().order_by(’-date_joined’)

serializer_class就是view类里面的一个属性名字,是不可以改变的,就是表明这个里面使用的哪一个序列系类,后面的值就是 我们在serializers.py里面自己定义的类

代码语言:javascript复制
serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet): “”" 查看、编辑用户群组的API接口。 “”" queryset = Group.objects.all() serializer_class = GroupSerializer

4 第四步 在根目录下面的url.py里面写路径

代码语言:javascript复制
from django.conf.urls import url, include
from django.contrib import admin
from rest_framework import routers           导入框架的路由模块
from quickstartapp import views
router = routers.DefaultRouter()             初始化一个路由对象
router.register(r'users', views.UserViewSet)                    

  在这个路由对象里面进行注册,第二个参数是view里面的类
router.register(r'groups', views.GroupViewSet)


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include(router.urls)),   这个的意思是根目录加上新框架的路由,
    就是一个路径,这个记住就行,所有
项目里面都可以这样写
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
     
]

记住:

必须在url里面创建router对象并且引用之后,才会出现rest框架的页面,因为这个对象是rest框架里面的类创建的对象 from rest_framework import routers 导入框架的路由模块 不然页面还是django的页面。所以路由里面一定到创建rest的对象并且进行引用。

以上操作之后,在浏览器输入之后,我们就会看见这样的页面

0 人点赞