【Python web 開發】使用者註冊功能(2)
我們繼續來完善使用者的註冊功能
註冊的時候前端post過來 手機號,驗證碼,密碼,而密碼和驗證碼我們只需要在serialzers 裡面驗證用,不需要序列化返回給前端
正常的serialzers 是怎樣的邏輯呢? 我們來看下CreateModelMixin 的原始碼
上面的錯誤檢視原始碼中CreateModelMixin的部分程式碼。可以看到它在驗證了是否有效之後執行了save。這些都是不會有問題的,但是當它return Response時,它會return S rializer的data(會依照我們在fields中的配置)。這時候因為data中的欄位已經和model中的不再一致。
那正對這樣的場景,我們在自定義serialzers 的時候 引數上 可以設定為 read_only = True
django rest framwork api guid 上面有介紹哦
密碼post 過來是明文,我們在儲存到資料庫的時候不能存明文,因此要在serialzers的時候過載 create 方法
測試:
post
return:
並沒有返回code 以及password 回來哦,達到我們的效果
相關推薦
【Python web 開發】使用者註冊功能(2)
我們繼續來完善使用者的註冊功能 註冊的時候前端post過來 手機號,驗證碼,密碼,而密碼和驗證碼我們只需要在serialzers 裡面驗證用,不需要序列化返回給前端 正常的serialzers 是怎樣的邏輯呢? 我們來看下CreateModelMixin 的原始碼
【Python web 開發】熱銷商品 功能實現
我們先來回顧下 我們goods 表的定義 其中商品是否是 熱賣,以及是否是新品 都有欄位標識 這種 資料庫中 0 代表否,1代表是 ,要用model BooleanField 實現商品熱賣的介面 實際上 是在商品中篩選 出來 那麼我們就要進入 過濾器了 一、配置 二
【Python web 開發】使用者收藏功能
一,建立使用者收藏的viewset 二、serializer 寫法 三。配置url 問題:我們直接在serializer 裡面fields 是直接寫的user,那麼序列化的時候會把表裡面所有的user 返回給我們 這樣是不對的,我們不能讓前端來選擇使用者,而是獲取前端請求中帶過
【Python web 開發】social_django 整合第三方登入
1、背景: 我們之前寫的一些介面僅僅是知道微博授權的一個流程,要把第三方授權登入的使用者的user_id 弄到我們的user_profile 中來才是 符合業務的需求的 因此gitbub上已經有一些開源的第三方外掛使用 social_app_django &nbs
【Python web 開發】django 從請求到響應經歷了什麼?
setting中註冊的middleware會將使用者request的資料經過這些middlware中有process_request方法和process_response方法註冊進入。 當用戶的request進入view之前會將這些process_request通通呼叫一遍
【python web開發】viewsets 配置認證類
我們在setting 裡面配置認證類 是一個全域性的,這個auth 類會對token 進行驗證,如果驗證失敗了會丟擲上面原始碼中的異常 但是有的介面,比如獲取首頁,商品列表頁 是不需要使用者 token的,因此這種全域性的配置是不行的,後端的解決方案: 將 token 認證拿到 view 中來做 以
【Python web 開發】Vue 和 jason web token 除錯
檢視前端Vue 原始碼 登入的request url 是這樣的 我們後端是這樣的 這樣請求的url 不統一,作為後端我們就要改 請求的url ,一般登入都是用的login login Vue 檢視登入的邏輯 登入成功後,我們
【Python web 開發】自定義使用者認證函式
自定義 使用者認證類,記得之前在mxonline 裡面做過, 主要思路是: 第一步:在seeting 裡面設定自定義的backends 第二步:在user views 裡面寫檢視函式 自定義使用者認證函式要繼承ModelBackend,並且要重寫
【Python web 開發】雲片網傳送簡訊驗證碼
傳送簡訊驗證碼 是要使用第三方服務的,運營商是不可能提供對外的個人傳送簡訊服務功能,我們本身也沒有能力去傳送驗證碼,雲片網是目前提供這種服務使用率較高的服務商之一 我們先來看下雲片網國內單條傳送簡訊的api 根據api 寫了一個指令碼,這個appkey 我還沒申請 如
【Python web 開發】第七章 開發總結
第七章開發總結:整理一下我們的知識點: 1、首先是django rest framwork 的token 登入和原理 django rest framwork 為我們提供了三種 認證模式 重點是 TokenAuthentication 這個
【Python web 開發】viewset 實現商品詳情頁的介面
我們如何來完成商品詳情頁的介面呢? 首先要配置一個商品詳情的url 按照我們正常的介面配法 ,應該是後面要加一個id 的,為什麼這裡沒有加id 呢? ,應該是rooter register 的作用吧,等我在學習一遍基礎再來回答? 那麼我們再來寫viewset Mixin.Retriev
【Python web 開發】如何序列化外來鍵的所有記錄?
檢視我們的表設計,商品圖片是有個外來鍵 關聯商品id 的 那麼我們要在goods 的serilazers 中怎麼序列化這個 外來鍵GoodsImage表的所有記錄呢? 第一步:先新建一個GoodsImageSerilazers 第二步: 在goodSerializers裡面設定關
【Python web 開發】django rest framwork動態設定許可權premission
首先我們來看下我們寫的使用者usersViewSet 新建使用者,獲取使用者資訊詳情,修改使用者詳情,是共用同一個viewset,但是新建使用者是不需要 使用者token的,獲取詳情和修還使用者資訊是需要使用者的token的 但是又是共用同一個配置,那怎麼辦呢? 於是就引進了 動態化配
【Python web 開發】django rest framwork 動態設定serializers
跟上一篇寫的動態獲取premisstion 思路一樣CreateModelMixin 有自己對應的serializers ,mixins.RetrieveModelMixin 想要自己的Detailserializers 又是共用一個viewSet ,於是我們也來
【Python web 開發】 bottle 簡單教程 (二)
Route()路由 一:寫一個py檔案 from bottle import route, run #說明1 @route("/login") def login(): return '登入成功'; #說明2 @route('/hello/:name'
Python Web開發相關的面試題(Django )
Python Web開發相關的面試題(Django ) 解釋一下 WSGI 和 FastCGI 的關係? CGI全稱是“公共閘道器介面”(CommonGateway Interface),HTTP伺服器與你的或其它機器上的程式進行“交談”的一種工具,其程式須執行在網路伺服器上。 CGI可
【JAVA WEB教程】jsp環境搭建(eclipse)【詳細+圖文】
下載JDK(如果你的系統是64位的,那麼就下載64位版本的) 然後安裝,點選下一步 再點選下一步 安裝成功 下載針對JAVA EE的Eclipse(如果你的系統是64位的,那麼就下載64位版本的) 下載完之後解壓到指定的目錄下,最好是C:\Program
【Python學習筆記】四、對映(Mapping)
• 通過名字來引用值得資料結構稱為對映字典(Dict)• 字典是鍵值對(key-value pair)的無序可變集合。(1)字典的操作①字典的建立• 字典中的每個元素包含兩部分:鍵和值。• 鍵和值用冒號分隔,元素間用逗號分隔,所有元素放在一對大括號中。d = {key1
【Python學習筆記】三、序列(Sequence)
3.1序列簡介• 資料結構是通過某種方式組織在一起的元素的集合。• 容器(Container)是一種Python的資料結構,基本上是包含其他物件的任意物件。序列和對映(如字典)是兩類主要的容器。集合(Set)也是容器型別。• 序列是最基本的資料結構,是通過對資料元
【Dubbo原始碼學習】負載均衡演算法(2)-輪詢演算法的實現
@Overrideprotected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) { String key = invokers.ge