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

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


需求分析:

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

2)彈層后,會(huì)自動(dòng)展示當(dāng)前已有的分?jǐn)?shù),可以對(duì)其修改。

3)修改的分?jǐn)?shù),會(huì)進(jìn)行是否在0~100分之間的判斷,不在有效范圍內(nèi)會(huì)報(bào)錯(cuò)。


1、編寫(xiě)彈層JS

與上一篇一樣,需要將錄入的內(nèi)容,通過(guò).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();
}
          

獲取了頁(yè)面里面的成績(jī),然后在彈層的content里面展示。


2、編寫(xiě)后端業(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ù)。

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

最終效果:點(diǎn)擊修改按鈕彈層,并且彈層內(nèi)會(huì)顯示當(dāng)前分?jǐn)?shù)。

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

輸入超過(guò)0~100的分?jǐn)?shù),會(huì)報(bào)錯(cuò)提示

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

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

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