Django Rest Framework引导教程

本文档详细介绍了如何在PyCharm中使用Django创建项目和应用,并集成DjangoRestframework进行序列化、视图设置、URL配置、全局设置修改以及测试。通过创建User和Group的序列化类,实现API接口,最后展示了如何运行和测试API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

  • 默认同学已经了解到 Django 框架的基础知识了,也就是说你会最基本的创建虚拟环境、Django项目、应用以及运行HelloWord这些。为了省事我就不从 CMD 上操作,直接从 PyCharm 上整了。
  • 对项目目录不是很了解的请看 附 。

1. 创建Django项目与应用

打开 PyCharm ,新建一个 Django 项目并命名为 DjangoDemo。打开终端安装 Django Rest framework

(venv) D:\Sweetyaya\DjangoDemo>pip install djangorestframework
Collecting djangorestframework
...
Successfully installed djangorestframework-3.12.2

创建一个应用

(venv) D:\Sweetyaya\DjangoDemo>django-admin startapp DrfApp

同步数据库

(venv) D:\Sweetyaya\DjangoDemo>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  ...
  Applying sessions.0001_initial... OK

创建超级用户

(venv) D:\Sweetyaya\DjangoDemo>python manage.py createsuperuser
Username (leave blank to use '***'): yaya
Email address: yaya@test.com
Password:
Password (again):
Superuser created successfully.

2. 序列化和视图

DrfDemo/ 下创建目录 quickstart/ 下创建文件 serializers.py

from django.contrib.auth.models import User, Group
from rest_framework import serializers


class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')


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

DrfDemo/ 下创建目录 quickstart/ 下创建文件 views.py

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


class UserViewSet(viewsets.ModelViewSet):
    """
    允许用户查看或编辑的API路径。
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializer


class GroupViewSet(viewsets.ModelViewSet):
    """
    允许组查看或编辑的API路径。
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

3. 修改URLs

修改 DjangoDemo/ 下的 url.py 文件

from django.conf.urls import url, include
from rest_framework import routers
from DrfApp.quickstart import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)

# 使用自动URL路由连接我们的API。
# 另外,我们还包括支持浏览器浏览API的登录URL。
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

4. 修改全局设置

修改 DjangoDemo/ 下的 settings.py 文件。

INSTALLED_APPS = (
    ...
    'rest_framework',
)

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAdminUser',
    ],
    'PAGE_SIZE': 10
}

5. 测试

运行程序,或执行命令

python manage.py runserver

在浏览器访问 http://127.0.0.1:8000/users/,可见显示如下(该页面需以第1步的用户和密码进行登录)。

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "url": "http://127.0.0.1:8000/users/1/",
        "username": "yaya",
        "email": "yaya@test.com",
        "groups": []
    }
]

附: 文件结构

__DjangoDemo/
	|__DjangoDemo/
		|__settings.py
		|__urls.py
	|__DrfApp/
		|__quickstart/
			|__serializers.py
			|__views.py
		|__admin.py
		|__apps.py
		|__...
	|__venv/ 

.

.
.
.
.
.
.


桃花仙人种桃树,又摘桃花换酒钱_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值