ในบทความนี้ เราจะมาดูวิธีการสร้างแอปตัวนับที่ง่ายสุดๆ โดยที่การคลิกปุ่มจะเพิ่มตัวเลขและจะทำต่อไปแม้ว่าคุณจะปิดแท็บและเก็บข้อมูลไว้ในเซสชันก็ตาม เราจะได้แนวคิดในการใช้ session เพื่อสร้างแอพง่ายๆ และวิธีถ่ายโอนข้อมูลโดยใช้ sessions
ตัวอย่าง
ใน urls.py เพิ่มบรรทัดต่อไปนี้ −
from django.urls import path from django.urls.resolvers import URLPattern from .import views urlpatterns = [ path('', views.counterView, name='counter'), ]
ที่นี่เราตั้งค่าการดูใน URL หน้าแรก
ใน views.py เพิ่มบรรทัดต่อไปนี้ −
from django.shortcuts import render # Create your views here. def counterView(request): if request.method == "POST" and 'count' in request.POST: try: request.session['count'] +=1 except: request.session['count'] = 0 elif request.method == 'POST' and 'reset' in request.POST: request.session['count'] = 0 return render(request,'counter.html')
ที่นี่เราสร้างตัวจัดการคำขอ POST เราจะส่งตัวเลขจากส่วนหน้าและบันทึกไว้ในตัวแปรการนับของเซสชัน เมื่อรีเซ็ตถูกส่งจากฟรอนท์เอนด์ จากนั้นเซสชันนับ กลายเป็น 0
ตอนนี้สร้าง เทมเพลต โฟลเดอร์ในไดเรกทอรีแอปและสร้าง counter.html ในนั้นและเขียนสิ่งนี้ −
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=devicewidth, initial-scale=1.0"> <title>Counter</title> <link href="https://cdn.jsdelivr.net/npm/[email protected]/ dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha38 4- +0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyT G2x" crossorigin="anonymous"> </head> <body> <style> body{ background-color: palevioletred; } .counter form .count{ border:none; outline: none; background-color:black; color: white; } .counter form .reset{ border:none; outline: none; background-color:rgb(50, 181, 204); } </style> <div class="container counter text-center" style="margintop: 150px;"> <h1 class="display-1 text-white"> {% if request.session.count%} {{request.session.count}} {%else%} 0 {%endif%}</h1> <br> <br> <form method="post"> {% csrf_token %} <button name="count" class="count px-5 py-3 textwhite shadow-lg">Count</button> </form> <br> <br> <form method="post"> {% csrf_token %} <button name="reset" class="reset px-5 py-3 textwhite shadow-lg">Reset</button> </form> </div> </body> </html>
นี่คือฟรอนท์เอนด์ที่เรากำลังเรนเดอร์บนโฮม url
ผลลัพธ์
คลิก นับ ปุ่มจะเพิ่ม 1 ในตัวเลขและคลิกปุ่มรีเซ็ตจะรีเซ็ต ตัวนับเป็น 0