# drf **Repository Path**: zhangdapeng520/drf ## Basic Information - **Project Name**: drf - **Description**: django rest framework的国产化替代品, 基于django rest framework二次开发 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-17 - **Last Updated**: 2024-12-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # drf django-rest-framework框架的国产化替代品 ## 安装 ```shell pip install django33 pip install drf ``` ## drf基础教程 ### 01.安装 drf是django-rest-framework框架的国产化替代品, 安装方式: ```shell pip install django33 pip install drf ``` ### 02.创建应用 创建应用: ```shell python manage.py startapp user ``` 安装应用: ```python INSTALLED_APPS = [ 'django33.contrib.admin', 'django33.contrib.auth', 'django33.contrib.contenttypes', 'django33.contrib.sessions', 'django33.contrib.messages', 'django33.contrib.staticfiles', 'drf', 'user', ] ``` ### 03.创建模型 修改: user/models.py ```python from django33.db import models class User(models.Model): name = models.CharField(max_length=100, verbose_name="姓名") age = models.IntegerField(verbose_name="年龄") def __str__(self): return self.name ``` 迁移: ```shell python manage.py makemigrations python manage.py migrate ``` ### 04.创建序列化类 修改: user/serializers.py ```python from drf import serializers from .models import User class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['id', 'name', 'age'] ``` ### 05.创建视图类 修改: user/views.py ```python from drf import generics from .models import User from .serializers import UserSerializer # 创建你的视图函数或者视图类 class UserList(generics.ListCreateAPIView): queryset = User.objects.all() serializer_class = UserSerializer class UserDetail(generics.RetrieveUpdateDestroyAPIView): queryset = User.objects.all() serializer_class = UserSerializer ``` ### 06.创建路由 创建: user/urls.py ```python from django33.urls import path from .views import UserList, UserDetail urlpatterns = [ path('', UserList.as_view(), name='user-list'), path('/', UserDetail.as_view(), name='user-detail'), ] ``` 修改: urls.py ```python from django33.urls import path, include urlpatterns = [ path('users/', include("user.urls")), ] ``` ### 07.测试接口 浏览器访问: http://127.0.0.1:8000/users/ http://127.0.0.1:8000/users/1/ ### 08.登录权限校验 修改: user/views.py ```python from drf import generics from drf.permissions import IsAuthenticated from .models import User from .serializers import UserSerializer # 创建你的视图函数或者视图类 class UserList(generics.ListCreateAPIView): permission_classes = [IsAuthenticated] queryset = User.objects.all() serializer_class = UserSerializer class UserDetail(generics.RetrieveUpdateDestroyAPIView): permission_classes = [IsAuthenticated] queryset = User.objects.all() serializer_class = UserSerializer ``` 修改: urls.py ```python from django33.contrib import admin from django33.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('users/', include("user.urls")), ] ``` 创建超级管理员: - 账号: admin - 密码: admin123456 ```python python manage.py createsuperuser ``` 先访问后台: http://127.0.0.1:8000/admin/ 再访问接口: http://127.0.0.1:8000/users/ http://127.0.0.1:8000/users/1/