• day075作业


    from django.conf.urls import url
    from django.views.static import serve
    from project01.settings import MEDIA_ROOT 
    from . import views 
    
    
    urlpatterns = [
        url(r'^media/(?P<path>.*)$', serve, {"document_root", MEDIA_ROOT}),
        url(r'^users/$', views.UserAPIView.as_view()),
        url(r'^users/(?P<pk>d+)', views.UserAPIView.as_view()),
        url(r'^v2/users/$',  views.UserReadAPIView.as_view()),
    
        url(r'^v3/users/$',  views.UserModelAPIView.as_view({
            'get': 'list',
            'post': 'create',
        })),
        url(r'^v3/users/(?P<pk>d+)$',  views.UserModelAPIView.as_view({
            'get': 'retrieve',
            'put': 'update',
            'patch': 'partial_update',
            'delete': 'destroy',
        })),
    ]
    
    from django.shortcuts import render
    from rest_framework.views import APIView
    from rest_framework.response import Response
    from . import serializers
    from . import models
    
    # Create your views here.
    
    
    
    from rest_framework.generics import GenericAPIView, ListAPIView
    from rest_framework.viewsets import ModelViewSet
    
    class UserReadAPIView(ListAPIView):
        queryset = models.User.objects.all()
        serializer_class = serializers.UserSerializer
    
        def get(self, request):
            return self.list(request)
    
    
    class UserModelAPIView(ModelViewSet):
        queryset = models.User.objects.all()
        serializer_class = serializers.UserSerializer
        lookup_url_kwarg = 'pk'
        
        def destroy(self, request, *args, **kwargs):
            user_obj = self.get_object()
            user_obj.is_delete = 1
            user_obj.save()
            return Response({'msg': "删除成功"}, status=200)
    
    
    from rest_framework import serializers
    from . import models
    
    
    class UserSerializer(serializers.ModelSerializer):
        re_password = serializers.CharField(write_only=True, required=True)
        class Meta:
            model = models.User
            fields = ['username', 'password', 'avatar', 'gender', 'avatar', 'show_gender', 're_password', 'get_avatar']
            extra_kwargs = {
                'avatar': {
                    'write_only': True,
                },
                'password': {
                    'write_only': True,
                    'required': True,
                },
                'gender': {
                    'write_only': True,
                },
            }
    
        def validate(self, attrs):
            password = attrs.get('password')
            try:
                re_password = attrs.pop('re_password')
                if password != re_password:
                    raise serializers.ValidationError({'re_password': '两次密码输入不一致'})
                return attrs
            except:
                return attrs
    
    from django.db import models
    from project01 import settings
    
    # Create your models here.
    
    
    class User(models.Model):
        username = models.CharField(max_length=255)
        password = models.CharField(max_length=255)
        avatar = models.ImageField(upload_to='img', default='img/default')
        GENDER_CHOICE = ([(0, 'male'), (1, 'female')])
        gender = models.IntegerField(choices=GENDER_CHOICE, default=0)
        is_delete = models.SmallIntegerField(default=0)
    
        @property
        def show_gender(self):
            return self.get_gender_display()
        
        @property
        def get_avatar(self):
            return '%s%s%s' % (settings.BASE_URL, settings.MEDIA_URL, self.avatar)
    
  • 相关阅读:
    [转]C#获取程序当前路径的方法
    [解决办法]未在本地计算机上注册“Mircosoft.Jet.OleDB.4.0”提供程序
    [解决办法]正在尝试使用已关闭或释放并且不再有效的 SPWeb 对象
    PowerShell学习笔记
    DNS
    在C#编程中,如何将Excel保存为2003的格式
    SAAS相关网络资源
    LCID及Culture Name列表
    Microsoft's naming conventions (微软命名规范)
    C#中如何结束Excel (Office)进程
  • 原文地址:https://www.cnblogs.com/YajunRan/p/12121508.html
Copyright © 2020-2023  润新知