iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 6
0
Modern Web

來個Django Web介面測試吧系列 第 6

來個Django Web介面測試吧:Day06-Django 視圖(view)之2

CSRF生成語法

  • 這是屬於Django Template 的語法,在form標籤中加入此段語法 {% csrf_token %}
    https://ithelp.ithome.com.tw/upload/images/20190907/20102269wLxuKyd931.jpg
  • 在進行輸入帳號密碼及登錄,就不會跳出403錯誤,另外透過chrome除錯工具查看,可以看到如下圖所示,From Data有出現csrfmiddlewaretoken:欄位,而後面是雜湊值,這代表CSRF的欄位。
    https://ithelp.ithome.com.tw/upload/images/20190907/20102269bNmV5iK6Up.jpg
  • 想忽略檢查CSRF可至settings.py註解如下圖的程式碼。
    https://ithelp.ithome.com.tw/upload/images/20190907/20102269JzsK8TVo0n.jpg

完成登錄頁面

開始前,先給個大補貼:關於path與url還不熟悉的朋友,可以參考BY大第十屆鐵人賽的文章:,連結如下:

  • HelloWord\urls.py 路徑下修改程式碼如下圖:
    https://ithelp.ithome.com.tw/upload/images/20190907/20102269JQBxK7TQxB.jpg

  • sign\urls.py 路徑下修改程式碼如下圖:
    https://ithelp.ithome.com.tw/upload/images/20190907/20102269gj3x8FNgtK.jpg

  • sign\views.py路徑下新增程式碼:
    https://ithelp.ithome.com.tw/upload/images/20190907/201022699U4NeI9p5a.jpg
    -程式碼如下:

    def login_page(request):
    if request.method == 'POST':
        id = request.POST.get('id','')
        password = request.POST.get('password','')
        if id == 'admin' and password == '12345678':
            return HttpResponse('登錄成功')
        else:
            return render(request,"index.html",{'error':'帳號或密碼輸入錯誤'})
    
  • 到路徑 http://127.0.0.1:8000/sign 測試登錄頁面

    • 登錄成功測試:

      • 預設成功帳號:admin
      • 預設成功密碼:12345678
        https://ithelp.ithome.com.tw/upload/images/20190907/20102269YAFI3xXqYy.jpg
      • 登錄成功後的畫面
        https://ithelp.ithome.com.tw/upload/images/20190907/20102269TDtvSCjwn5.jpg
    • 登錄失敗測試:

      • 預設帳號:隨意
      • 預設密碼:隨意
        https://ithelp.ithome.com.tw/upload/images/20190907/201022690mq175Z5Ds.jpg
      • 登錄失敗,會顯示如下圖提示:
        https://ithelp.ithome.com.tw/upload/images/20190907/201022695wGxB18Td2.jpg

上一篇
來個Django Web介面測試吧:Day05-Django 視圖(view)之1
下一篇
來個Django Web介面測試吧:Day07-Django 視圖(view)之3
系列文
來個Django Web介面測試吧30

尚未有邦友留言

立即登入留言