django防止表單數據重復提交


思路:
        GET訪問時,服務器返回頁面,同時生成認證token,保存入session

       POST訪問時,校驗客戶端的token與session中保存的token是否一致

具體代碼:

import uuid

from django.http import HttpResponse
from django.shortcuts import render,render_to_response

from DataAccess.Supplier import supplier_DAC
from common import utils
from common.Supplier import urlconfig
from Supplier.supperForm import SupplierForm
# Create your views here.
def index(request):
supplier_table_data=supplier_DAC.getAllSupplierInfo()
page_id=''
if utils.Is_GET(request):
page_id=str(uuid.uuid4())
request.session["pageid"]=page_id
return render_to_response(urlconfig.index,{'form':SupplierForm(),'data':supplier_table_data,'pageId':page_id})
elif utils.Is_POST(request):
if utils.GetData(request,'hid')==request.session["pageid"]:
form_p=SupplierForm(request.POST)
if SupplierForm.is_valid:
form_p.save()
page_id=str(uuid.uuid4())
request.session["pageid"]=page_id
return render_to_response(urlconfig.index,{'form':SupplierForm(),'data':supplier_table_data,'pageId':page_id})
else:
page_id=str(uuid.uuid4())
request.session["pageid"]=page_id
return render_to_response(urlconfig.index,{'form':SupplierForm(),'data':supplier_table_data,'pageId':page_id})
return render_to_response(urlconfig.index,{'form':SupplierForm(),'data':supplier_table_data,'pageId':page_id})

有其它思路實現的請多多請教


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM