這是django開發學生選課系統的最後一篇了,上一篇結束,咱們已經知道如何選課(向數據庫裏面寫數據)。前端
這一篇須要講解老師門戶的成績錄入,至關於對已經存在score表的具備sno(學號)與cno(課程號)的記錄,可是還未有或者已有cscore(成績)的數據,能夠按需進行修改。至於其餘頁面,基本上都是向數據庫裏面作查詢而已,就再也不一一展開敘述了。數據庫
需求分析:
django
1)老師點擊按鈕以後,能夠彈層。後端
2)彈層後,會自動展現當前已有的分數,能夠對其修改。session
3)修改的分數,會進行是否在0~100分之間的判斷,不在有效範圍內會報錯。ide
一、編寫彈層JS函數
與上一篇同樣,須要將錄入的內容,經過.post函數返回到後端業務邏輯處理。
post
最大的區別,是onshow處,使用ui
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裏面展現。blog
二、編寫後端業務邏輯
(==) (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({:})
三、前端內容與綁定按鈕
CSS與JS引用略,而後將按鈕onclick綁定函數。
成績錄入課程號課程名學生姓名成績編輯{% for i in data %} {{ i.course__cno }}{{ i.course__cname }}{{ i.course__score__sno__sname }}{{ i.course__score__cscore }}{% endfor %}
最終效果:點擊修改按鈕彈層,而且彈層內會顯示當前分數。
輸入超過0~100的分數,會報錯提示
輸入0~100之內分數,修改爲功。