[英]Django not REST - API user registration
我有一個大三的第一個項目。 它很老(Django 1.8),是正常的django框架...不是REST。
它支持網絡和移動。
我必須為移動設備創建端點才能創建用戶。
我認為(創建)這不是問題,但我想確保它可以保存。
首先,我認為我將創建普通的ModelForm(基於model = User的RegisterAPIForm,具有完整驗證(我的意思是初始化用戶不可見的“后端”中的所有字段|所有字段的cleaned_data |特殊的覆蓋方法save())除了散列密碼,然后發送電子郵件),然后在“視圖”中添加以下內容:
class RegistrationAPITestView(View):
def post(self, request):
form = RegistrationAPIForm(
request.POST
)
if form.is_valid():
form.save()
return JsonResponse({})
else:
#check errors and send error code back
還是我應該通過使用User對象來做其他方式?
class RegistrationAPITestView(View):
def post(self, request):
#check if user does not exist
#password1 and password2 validation
user = User.objects.create()
user.name = request.POST['username']
user.set_password(request.POST['password'])
#init all fields that user can't choose like groups etc
user.save()
你怎么看? 我需要甚至不渲染的ModelForm嗎? 這似乎更安全,但也許我應該以其他方式檢查它? 與用戶對象?
順便說一句。 Web的注冊表單已經存在,但是我不需要很多“網絡”內容,也不必檢查,還有另一種保存密碼的方法,因此我認為我應該創建一個新的。
我的代碼將在2周內(高級假期)進行修改,但是現在我很孤單,並且想盡我最大的努力。
第二種選擇沒有什么問題,但是這是您作為初中生應該避免的問題。 此行將使服務器返回一個500錯誤request.POST['username']
因為如果用戶不提供用戶名,python會拋出一個關鍵錯誤,只需將其更改為request.POST.get('username', 'value if doesn\\'t exit')
還應確保在創建用戶之前一切都准備就緒,否則數據庫中將沒有有用的記錄。 還將驗證程序稱為密碼,並嘗試涵蓋所有可能的情況。 記住永遠不要信任用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.