日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rest_framework10:base64补充/修改头像

發(fā)布時(shí)間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rest_framework10:base64补充/修改头像 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

base64補(bǔ)充

# base64 變長,可反解 # md5 固定長度,不可反解# base64 編碼和解碼 import base64 import json dic={'name':'test','age':18} dic_str=json.dumps(dic)ret=base64.b64encode(dic_str.encode('utf-8')) print(ret)# 解碼 ret2=base64.b64decode(ret) print(ret2)

修改頭像

1.使用不同序列化對(duì)象更新。

2.使用自動(dòng)分發(fā)路由,不用修改路由。

ser.py

from rest_framework import serializers from api import models from rest_framework.exceptions import ValidationError class UserModelSerializer(serializers.ModelSerializer):# 因?yàn)樵趏rm表中沒用re_password=serializers.CharField(max_length=16,min_length=4,required=True,write_only=True)class Meta:model=models.Userfields=['username','password','mobile','re_password','icon']extra_kwargs={'username':{'max_length':16},'password':{'write_only':True}}def validate_mobile(self, data):if not len(data)==11:raise ValidationError('手機(jī)號(hào)不合法')return datadef validate(self,attrs):if not attrs.get('password') == attrs.get('re_password'):raise ValidationError('兩次密碼不一致')attrs.pop('re_password') # 剔除,因?yàn)閿?shù)據(jù)庫里沒有這個(gè)re_password字段return attrsdef create(self, validated_data):# attrs.pop('re_password') # 如果上面沒有,這里處理# models.User.objects.create(**validated_data) 這個(gè)密碼不會(huì)加密user=models.User.objects.create_user(**validated_data)return userclass UserReadOnlyModelSerializer(serializers.ModelSerializer):class Meta:model=models.Userfields=['username','icon']class UserImgModelSerializer(serializers.ModelSerializer):class Meta:model=models.Userfields=['icon']

views.py

from rest_framework.viewsets import GenericViewSet from rest_framework.mixins import CreateModelMixin,UpdateModelMixin from api import models class RegisterView(GenericViewSet,CreateModelMixin,UpdateModelMixin):queryset = models.User.objects.all()serializer_class = ser.UserModelSerializerdef get_serializer_class(self):print(self.action)if self.action=='create':return ser.UserModelSerializerelif self.action=='retrieve':return ser.UserReadOnlyModelSerializerelif self.action=='update':return ser.UserImgModelSerializer

api/urls.py

from rest_framework.routers import SimpleRouter from api import viewsrouter=SimpleRouter() router.register('register',views.RegisterView,'register')urlpatterns = [# path('register/', views.RegisterView.as_view({'post':'creat'})),# path('',include(router.urls)) # 第二種方式 ]urlpatterns+=router.urls # 第一種方式

總結(jié)

以上是生活随笔為你收集整理的rest_framework10:base64补充/修改头像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。