這是django開發(fā)學(xué)生選課系統(tǒng)的最后一篇了,上一篇結(jié)束,我們已經(jīng)知道如何選課(向數(shù)據(jù)庫里面寫數(shù)據(jù))。

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


需求分析:

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

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

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


1、編寫彈層JS

與上一篇一樣,需要將錄入的內(nèi)容,通過.post函數(shù)返回到后端業(yè)務(wù)邏輯處理。

最大的區(qū)別,是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、編寫后端業(yè)務(wù)邏輯

            (==)
(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、前端內(nèi)容與綁定按鈕

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

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

最終效果:點擊修改按鈕彈層,并且彈層內(nèi)會顯示當前分數(shù)。

【實戰(zhàn)演練】Python+Django網(wǎng)站開發(fā)系列10-django成績錄入頁開發(fā)_第1張圖片

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

【實戰(zhàn)演練】Python+Django網(wǎng)站開發(fā)系列10-django成績錄入頁開發(fā)_第2張圖片

輸入0~100以內(nèi)分數(shù),修改成功。

【實戰(zhàn)演練】Python+Django網(wǎng)站開發(fā)系列10-django成績錄入頁開發(fā)_第3張圖片