zoukankan      html  css  js  c++  java
  • 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)
    
  • 相关阅读:
    sql 笔记之一
    js的Location
    VS无法使用.XXXX附加到程序
    C#遍历对象的方法
    解决tomcat启动时中文乱码问题。
    动态sql foreach 循环报错问题
    java跳过https证书直接请求工具类
    安装svn报2503错误处理方法
    oracle常用的一些查询命令
    Oracle11g安装过程中忘记进行口令配置
  • 原文地址:https://www.cnblogs.com/YajunRan/p/12121508.html
Copyright © 2011-2022 走看看