這是django開發學生選課系統的最后一篇了,上一篇結束,我們已經知道如何選課(向數據庫里面寫數據)。

這一篇需要講解老師門戶的成績錄入,相當于對已經存在score表的具有sno(學號)與cno(課程號)的記錄,但是還未有或者已有cscore(成績)的數據,可以按需進行修改。至于其他頁面,基本上都是向數據庫里面做查詢而已,就不再一一展開敘述了。


需求分析:

1)老師點擊按鈕之后,可以彈層。

2)彈層后,會自動展示當前已有的分數,可以對其修改。

3)修改的分數,會進行是否在0~100分之間的判斷,不在有效范圍內會報錯。


1、編寫彈層JS

與上一篇一樣,需要將錄入的內容,通過.post函數返回到后端業務邏輯處理。

最大的區別,是onshow處,使用

            edit_score_js(cscore,sno,cno)?{
????d?=?dialog({
????????????width:?,
????????????title:?,
????????????quickClose:?,
????????????content:?+
????????????????+
????????????????+
????????????????+
????????????????+
????????????????+
????????????????+
????????????????+
????????????????+
????????????????,
????????????ok:?()?{
????????????????($().val()?<||?$().val()?>){
????????????????????alert()
????????????????}{
????????????????????$.post(,{
????????????????????:$().val(),
????????????????????:sno,
????????????????????:cno,
????????????????},(res)?{
????????????????????(res.result){
????????????????????????alert();
????????????????????}
????????????????},)
????????????????window.location.reload();
????????????????}
????????????},
????????????cancelValue:?,
????????????cancel:?()?{
????????????????console.log()
????????????????},
????????????onshow:?()?{
????????????????$().val(cscore)
????????????}
????????});
????????d.show();
}
          

獲取了頁面里面的成績,然后在彈層的content里面展示。


2、編寫后端業務邏輯

            (==)
(request):
????username?=?request.session.get()
????data?=?teacher.objects.filter(=username).values()
????data
????render_to_response(())

(request):
????=?request.session.get()
????cno?=?request.POST.get()
????sno?=?request.POST.get()
????scored?=?request.POST.get()
????score.objects.filter(=cno=sno).update(=scored)
????JsonResponse({:})
          


3、前端內容與綁定按鈕

CSS與JS引用略,然后將按鈕onclick綁定函數。

            成績錄入課程號課程名學生姓名成績編輯{%?for?i?in?data?%}
?????????????????{{?i.course__cno?}}{{?i.course__cname?}}{{?i.course__score__sno__sname?}}{{?i.course__score__cscore?}}{%?endfor?%}
          

最終效果:點擊修改按鈕彈層,并且彈層內會顯示當前分數。

【實戰演練】Python+Django網站開發系列10-django成績錄入頁開發_第1張圖片

輸入超過0~100的分數,會報錯提示

【實戰演練】Python+Django網站開發系列10-django成績錄入頁開發_第2張圖片

輸入0~100以內分數,修改成功。

【實戰演練】Python+Django網站開發系列10-django成績錄入頁開發_第3張圖片