[py][mx]django使用class寫views-免去判斷方法的煩惱
阿新 • • 發佈:2018-02-01
() 使用 判斷 index quest .post 驗證 9.png users
修改views使用class模式
類模式寫views - 免去了函數模式的判斷的煩惱
users/views.py
from django.views.generic import View class UserView(View):#繼承了View類,它裏面實現get post等方法, 使用類模式寫免去了函數模式的判斷 def get(self, request): return render(request, "login.html", {}) def post(self, request): user_name = request.POST.get("username", "") pass_word = request.POST.get("password", "") user = authenticate(username=user_name, password=pass_word) if user is not None: # 用戶名密碼驗證成功 login(request, user) # django執行用戶登錄 return render(request, "index.html") else: return render(request, "login.html", {'msg': "用戶名或密碼錯誤"})
函數模式寫views - 需要手動判斷方法,有點麻煩
users/views_old.py
def user_login(request): if request.method == "POST": user_name = request.POST.get("username", "") pass_word = request.POST.get("password", "") user = authenticate(username=user_name, password=pass_word) if user is not None: # 用戶名密碼驗證成功 login(request, user) # django執行用戶登錄 return render(request, "index.html") else: return render(request, "login.html", {'msg': "用戶名或密碼錯誤"}) elif request.method == "GET": return render(request, "login.html", {})
修改urls.py 調用views裏對應的類
from django.views.generic import TemplateView from users import views urlpatterns = [ path('', TemplateView.as_view(template_name='index.html'), name="index"), path('login/', views.UserView.as_view(), name="login"), path('xadmin/', xadmin.site.urls), ]
[py][mx]django使用class寫views-免去判斷方法的煩惱