1. 程式人生 > >python在Django框架下實現增刪改查功能

python在Django框架下實現增刪改查功能

from django.shortcuts import render

#引入資料表
from app01.models import DepartInfo,UserInfo

#重定向
from django.http import HttpResponseRedirect

from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger

# Create your views here.

#首頁
def gotoIndex(request):
    return render(request,'index.html')

#跳轉到新增部門頁面
def gotoDepart(request):
    return render(request,'depart/addDepart.html')

#新增部門資訊
def addDepartInfo(request):
    #獲取部門資訊
    departName=request.POST.get("departName")
    #儲存部門資訊
    # print('-------------------')
    # print(departName)
    #判斷部門是否存在
    if DepartInfo.objects.filter(dName=departName):
        return render(request,'depart/addDepart.html',{"msg":"部門已經存在"})
    else:
        #判斷是否新增內容
        if DepartInfo(dName=departName):
            DepartInfo(dName=departName).save()
            return render(request,'depart/addDepart.html',{"msg":"部門新增成功"})
        else:
            return render(request,'depart/addDepart.html',{"msg":"部門新增失敗"})


#跳轉到新增員工資訊
def gotoUser(request):
    #獲取所有部門  表
    departInfo=DepartInfo.objects.all()
    #返回到客戶端 html
    return render(request,'user/addUser1.html',{"departInfo":departInfo})

#新增員工資訊1===>2
def addUserName(request):
    #獲取客戶端資料 html
    departId=request.GET.get("departId")
    uName=request.GET.get("uName")
    departName=DepartInfo.objects.get(dId=departId).dName
    print(departId,uName)
    #儲存資料,進行資料快取
    #存的是部門id
    request.session['departId']=departId
    #員工姓名
    request.session['uName']=uName
    dict1={"departId":departId,'uName':uName,"departName":departName}
    return render(request,'user/addUser2.html',dict1)

#新增員工資訊2===》3
def addUserNumSex(request):
    #獲取客戶端資訊
    #性別
    uSex=request.GET.get("uSex")
    #工號
    uNum=request.GET.get("uNum")
    print(uSex,uNum)
    #儲存資料
    request.session['uSex']=uSex
    request.session['uNum']=uNum
    if uSex=="1":
        uSex="男"
    elif uSex=="2":
        uSex="女"
    dict1={"uSex":uSex,"uNum":uNum}
    return render(request,'user/addUser3.html',dict1)

#儲存員工資訊3
def addUserMoney(request):
    #獲取客戶端資料
    uMoney=request.GET.get("uMoney")
    
    #儲存資料
    #存的是部門id
    departId=request.session['departId']
    #員工姓名
    uName=request.session['uName']
    uSex=request.session['uSex']
    uNum=request.session['uNum']
    # print('---------')
    # print(uMoney,departId,uName,uSex,uNum)
    if UserInfo(dId=departId,uName=uName,uNum=uNum,usex=uSex,umoney=uMoney):
        UserInfo(dId=departId,uName=uName,uNum=uNum,usex=uSex,umoney=uMoney).save()
        return render(request,'user/addUser3.html')

#返回2===》1
def backUserName(request):
    #存的是部門id
    departId=request.session['departId']
    departName=DepartInfo.objects.get(dId=departId).dName
    departInfo=DepartInfo.objects.all()
    #員工姓名
    uName=request.session['uName']
    dict1={"departId":departId,'uName':uName,"departName":departName,"departInfo":departInfo,"flag":"1"}
    return render(request,'user/addUser1.html',dict1)

#返回3===》2
def backUserNum(request):
    uSex=request.session['uSex']
    uNum=request.session['uNum']
    if uSex=="1":
        dict1={"uSex":uSex,"uNum":uNum,"sexTrue":"1"}
        return render(request,'user/addUser2.html',dict1)
    elif uSex=="2":
        dict1={"uSex":uSex,"uNum":uNum}
        return render(request,'user/addUser2.html',dict1)    

#展示員工資訊
def gotoShowUserInfo(request):
    userInfo=UserInfo.objects.all()
    for i in userInfo:
        #員工資訊表的部門id=部門表的名稱
        i.dId=DepartInfo.objects.get(dId=i.dId).dName
        if i.usex==1:
            i.usex="男"
        elif i.usex==2:
            i.usex="女"
    pagesize=1
    pages=Paginator(userInfo,pagesize)
    p=request.GET.get("p")
    try:
        pageDatas=pages.page(p)
    except PageNotAnInteger:
        pageDatas=pages.page(1)
    except EmptyPage:
        pageDatas=pages.page(pages.num_pages)
    return render(request,'user/showUserInfo.html',{"userInfo":pageDatas})    


#編輯員工資訊
def gotoUpdateUser(request):
    #獲取客戶端引數
    uId=request.GET.get("uId")
    #返回夫伺服器資料
    userInfo=UserInfo.objects.get(uId=uId)

    dName=DepartInfo.objects.get(dId=userInfo.dId).dName
    departInfo=DepartInfo.objects.all()
    if userInfo.usex==1:
        return render(request,'user/updateUserInfo.html',{"userInfo":userInfo,"dName":dName,"departInfo":departInfo,"seTrue":"1"})    
    elif userInfo.usex==2:
        return render(request,'user/updateUserInfo.html',{"userInfo":userInfo,"dName":dName,"departInfo":departInfo})    
    
#編輯員工資訊
def updateUserInfo(request):
    #獲取客戶端資料
    uId=request.GET.get("uId")
    departId=request.GET.get("departId")
    #departId=DepartInfo.objects.get(dName=departId)
    uName=request.GET.get("uName")
    uSex=request.GET.get("uSex")
    uNum=request.GET.get("uNum")
    uMoney=request.GET.get("uMoney")
    print(departId,uName,uSex,uNum,uMoney)
    #修改儲存資料
    if UserInfo.objects.filter(uId=uId):
        UserInfo.objects.filter(uId=uId).update(dId=departId,uName=uName,uNum=uNum,usex=uSex,umoney=uMoney)
    
    return HttpResponseRedirect('/gotoShowUserInfo')
    #return render(request,'user/showUserInfo.html')

#刪除函式
def gotoDeleteUser(request):
    uId=request.GET.get("uId")
    UserInfo.objects.filter(uId=uId).delete()
    return HttpResponseRedirect('/gotoShowUserInfo')

#批量刪除
def dodeleteUserInfoAll(request):
    uids=request.GET.get("uids")
    #return HttpResponseRedirect('/gotoShowUserInfo')
    UserInfo.objects.extra(where=['uId in ('+uids+')']).delete()
    return HttpResponseRedirect('/gotoShowUserInfo')

#搜尋
def gotoSearch(request):
    #獲取客戶端資料
    searTxt=request.GET.get("searTxt")
    departInfo=DepartInfo.objects.filter(dName__contains=searTxt)
    for i in departInfo:
        print(i.dId)
        #進行搜尋
        userInfo=UserInfo.objects.filter(dId=i.dId)
        for i in userInfo:
            i.dId=DepartInfo.objects.get(dId=i.dId).dName
            if i.usex==1:
                i.usex="男"
            elif i.usex==2:
                i.usex="女"
    pagesize=1
    pages=Paginator(userInfo,pagesize)
    p=request.GET.get("p")
    try:
        pageDatas=pages.page(p)
    except PageNotAnInteger:
        pageDatas=pages.page(1)
    except EmptyPage:
        pageDatas=pages.page(pages.num_pages)
    return render(request,'user/showUserInfo.html',{"userInfo":pageDatas,"searTxt":searTxt})