版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Python Web開(kāi)發(fā)基礎(chǔ)教程(Django版)第9章 Python在線題庫(kù)本章主要內(nèi)容:項(xiàng)目設(shè)計(jì)項(xiàng)目實(shí)現(xiàn)數(shù)據(jù)管理實(shí)現(xiàn)試卷導(dǎo)出9.1 項(xiàng)目設(shè)計(jì)本節(jié)主要內(nèi)容功能分析數(shù)據(jù)庫(kù)設(shè)計(jì)9.1.1功能分析Python在線題庫(kù)主要具有試題管理、試卷模板定制和試卷導(dǎo)出等功能。試題管理:具有試題管理權(quán)限的用戶可以添加、修改和刪除題庫(kù)中的試題。試卷定制模板:具有試卷定制權(quán)限的用戶可以設(shè)置各種類型的試題在試卷中的數(shù)量和分值,后臺(tái)根據(jù)設(shè)置隨機(jī)抽題生成試卷。試卷導(dǎo)出:預(yù)覽試卷內(nèi)容、下載試卷Word文件。9.1.2數(shù)據(jù)庫(kù)設(shè)計(jì)Python在線題庫(kù)主要包含4個(gè)數(shù)據(jù)表:試題類型表、試題表、試卷模板表和試卷內(nèi)容表。試題類型表:保
2、存試題類型名稱。參照全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)Python考試大綱,試題類型包括單項(xiàng)選擇題、基本操作題、簡(jiǎn)單應(yīng)用題和綜合應(yīng)用題。試題類型表包含試題類型ID和試題類型名稱字段。試題表:保存試題。試題表包含試題ID、試題題干、試題選項(xiàng)、試題圖片和參考答案等字段。僅單項(xiàng)選擇題有試題選項(xiàng),每小題的選項(xiàng)用JSON字符串表示。試題表與試題類型表之間是多對(duì)一關(guān)系,一種試題類型對(duì)應(yīng)多道試題。試卷模板表:保存一套試卷的試題設(shè)置。試卷模板表包含試卷模板ID、模板名稱、制卷時(shí)間、單項(xiàng)選擇題數(shù)量、單項(xiàng)選擇題分值、基本操作題數(shù)量、基本操作題分值、簡(jiǎn)單應(yīng)用題數(shù)量、簡(jiǎn)單應(yīng)用題分值、綜合應(yīng)用題數(shù)量和綜合應(yīng)用題分值等字段。試卷內(nèi)容
3、表:保存根據(jù)試卷模板隨機(jī)生成的試卷,包含試卷內(nèi)容ID、試卷名稱和試題ID列表。試題ID列表是由隨機(jī)抽取的試題的ID組成的列表。試卷內(nèi)容表和試卷模板表之間是多對(duì)一關(guān)系,一個(gè)試卷模板可以隨機(jī)生成多套試卷。項(xiàng)目中用戶管理功能使用默認(rèn)的Admin站點(diǎn)來(lái)實(shí)現(xiàn),相應(yīng)的模型使用Django默認(rèn)的用戶模型和權(quán)限模型。9.2 項(xiàng)目實(shí)現(xiàn)本節(jié)主要內(nèi)容創(chuàng)建項(xiàng)目和應(yīng)用創(chuàng)建模型和數(shù)據(jù)庫(kù)注冊(cè)模型創(chuàng)建添加和修改試題對(duì)象模板創(chuàng)建添加和修改試卷內(nèi)容對(duì)象模板實(shí)現(xiàn)隨機(jī)抽取試題9.2.1創(chuàng)建項(xiàng)目和應(yīng)用將題庫(kù)項(xiàng)目命名為chapter9,在項(xiàng)目中創(chuàng)建應(yīng)用ItemPool,在應(yīng)用中完成項(xiàng)目的相關(guān)功能實(shí)現(xiàn)。創(chuàng)建項(xiàng)目和應(yīng)用的具體操作步驟如下。(
4、1)執(zhí)行下面的命令創(chuàng)建項(xiàng)目chapter9D:django-admin startproject chapter9(2)執(zhí)行下面的命令,在項(xiàng)目中創(chuàng)建應(yīng)用ItemPool。D:cd chapter9D:chapter9python manage.py startapp ItemPool9.2.2創(chuàng)建模型和數(shù)據(jù)庫(kù)具體操作步驟如下:(1)用Visual Studio打開(kāi)項(xiàng)目主文件夾chapter9。(2)修改應(yīng)用ItemPool中的models.py文件,為項(xiàng)目的試題類型表、試題表、試卷模板表和試卷內(nèi)容表等定義模型(3)修改項(xiàng)目配置文件settings.py,注冊(cè)ItemPool應(yīng)用和中文中間件,設(shè)
5、置中文語(yǔ)言、時(shí)區(qū)和媒體資源目錄等。(4)在Windows命令窗口執(zhí)行命令完成數(shù)據(jù)庫(kù)創(chuàng)建。(5)創(chuàng)建Admin站點(diǎn)的超級(jí)管理員賬戶。9.2.3注冊(cè)模型注冊(cè)模型是實(shí)現(xiàn)本例的關(guān)鍵環(huán)節(jié),該操作在ItemPool應(yīng)用的admin.py文件中完成。1修改站點(diǎn)標(biāo)題本例用自定義標(biāo)題代替Admin站點(diǎn)的默認(rèn)標(biāo)題。#替換站點(diǎn)默認(rèn)標(biāo)題admin.site.site_title=Python在線題庫(kù)后臺(tái)管理 #定義站點(diǎn)標(biāo)題(顯示在瀏覽器標(biāo)題欄)admin.site.site_header=Python在線題庫(kù)#定義站點(diǎn)頁(yè)面頂部標(biāo)題2注冊(cè)試卷模板模型在Admin站點(diǎn)中,試卷模板模型使用默認(rèn)管理模板,只需要完成注冊(cè)即可,
6、注冊(cè)代碼如下。from django.contrib import adminfrom .models import *admin.site.register(paperTemplate) #按默認(rèn)方式注冊(cè)模型3注冊(cè)試題類型模型注冊(cè)代碼如下。admin.register(itemType) #用下面的自定義類注冊(cè)試題類型模型class itemTypeAdmin(admin.ModelAdmin): list_display=id,name #設(shè)置在模型數(shù)據(jù)瀏覽頁(yè)面中顯示的字段list_editable=name #允許在模型數(shù)據(jù)瀏覽頁(yè)面中修改字段數(shù)據(jù)4注冊(cè)試題模型注冊(cè)代碼如下。admin.r
7、egister(testItem) #注冊(cè)試題模型class testItemAdmin(admin.ModelAdmin): list_display=id,type,question,options,item_pic,answer list_filter=type_name#設(shè)置過(guò)濾器字段 ordering=type,id#設(shè)置排序字段 search_fields = question#設(shè)置搜索字段,在頁(yè)面中顯示搜索框 add_form_template=change_testItem.html #設(shè)置添加數(shù)據(jù)表單模板 change_form_template=change_testIte
8、m.html#設(shè)置修改數(shù)據(jù)表單模板 fieldsets = (#定義添加和修改頁(yè)面中的字段及其先后順序 (None, fields: (type,question,options,picture,answer) ), )5注冊(cè)試卷內(nèi)容模型注冊(cè)代碼如下。admin.register(paperContent) #注冊(cè)試卷內(nèi)容模型class paperContentAdmin(admin.ModelAdmin): list_display=id,name,content,template ordering=id,name,template add_form_template=paperConten
9、t.html change_form_template=paperContent.html fieldsets = ( (None, fields: (template,name,content) ), )9.2.4創(chuàng)建添加和修改試題對(duì)象模板Admin在添加和修改對(duì)象時(shí),通常使用同一個(gè)模板。本例中,添加和修改試題對(duì)象時(shí),使用change_testItem.html模板9.2.5創(chuàng)建添加和修改試卷內(nèi)容對(duì)象模板在添加和修改試卷內(nèi)容對(duì)象時(shí),使用paperContent.html模板9.2.6實(shí)現(xiàn)隨機(jī)抽取試題實(shí)現(xiàn)隨機(jī)抽取試題的視圖代碼如下9.3 數(shù)據(jù)管理本節(jié)主要內(nèi)容試題類型模型管理試題模型管理試卷模板模型管理試卷內(nèi)容模型管理9.3.1試題類型模型管理9.3.2試題模型管理9.3.3試卷模板模型管理9.3.4試卷內(nèi)容模型管理9.4 實(shí)現(xiàn)試卷導(dǎo)出本節(jié)主要內(nèi)容基本思路定義試卷導(dǎo)出頁(yè)面模板定義試卷導(dǎo)出相關(guān)視圖測(cè)試試卷導(dǎo)出頁(yè)面9.4.1基本思路試卷導(dǎo)出實(shí)現(xiàn)的基本思路如下:1在試卷導(dǎo)出頁(yè)面中顯示現(xiàn)有的試卷列表。2用戶從試卷列表中選擇要導(dǎo)出的試卷時(shí),在頁(yè)面中顯示試卷預(yù)覽內(nèi)容。試卷預(yù)覽內(nèi)容為HTML格式,直接在瀏覽器中查看。3在生成試卷預(yù)覽內(nèi)容的同時(shí),將試卷寫入Word文件供用戶下載。4獲得試卷預(yù)覽內(nèi)容后,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 哺乳期解除勞動(dòng)合同協(xié)議范本
- 2024年房屋補(bǔ)漏維修工程合同
- 2024專項(xiàng)資金借款的合同范本
- 員工聘用合同協(xié)議書范文2024年
- 建設(shè)工程內(nèi)部承包合同書2024年
- 2024新款供貨合同協(xié)議書
- 2024【流動(dòng)資金外匯借貸合同】公司流動(dòng)資金合同
- 2024年公司股東之間借款合同實(shí)例
- 專業(yè)房屋買賣合同模板大全
- 2024年事業(yè)單位聘用
- 民間借貸利息計(jì)算表
- 2024江蘇省鐵路集團(tuán)限公司春季招聘24人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 滬科版(2024)八年級(jí)全一冊(cè)物理第一學(xué)期期中學(xué)業(yè)質(zhì)量測(cè)試卷 2套(含答案)
- 變頻電機(jī)參數(shù)規(guī)格-YP2
- 廈門廚余垃圾現(xiàn)狀
- 煤礦建設(shè)工程施工技術(shù)資料
- 科技創(chuàng)新政策解讀PPT課件
- 面試信息登記表
- 讀秀學(xué)術(shù)搜索平臺(tái)PPT課件
- 市質(zhì)量獎(jiǎng)中層領(lǐng)導(dǎo)座談會(huì)準(zhǔn)備的問(wèn)題
- 優(yōu)秀學(xué)生寢室獎(jiǎng)勵(lì)制度
評(píng)論
0/150
提交評(píng)論