前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django_rest框架实践项目(一)入门helloWord项目的创建和代码的解释

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

作者头像
一写代码就开心
发布2021-03-02 14:39:59
1.2K0
发布2021-03-02 14:39:59
举报
文章被收录于专栏:java和python

目录

创建项目

在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的对象并且进行引用。

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

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 创建项目
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档