国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

這篇具有很好參考價(jià)值的文章主要介紹了【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 課題背景

隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,越來越多智能手段代替了傳統(tǒng)依靠大量人力、物力才能解決的問題。目前,Java認(rèn)證、DB2認(rèn)證、全國(guó)計(jì)算機(jī)等級(jí)考試等均采用了在線考試的方式進(jìn)行。Python作為一種先進(jìn)的計(jì)算機(jī)語言,具有簡(jiǎn)潔、易讀、可擴(kuò)展等特性,被各個(gè)企業(yè)廣泛應(yīng)用,進(jìn)而導(dǎo)致社會(huì)對(duì)Python人才的需求急劇增長(zhǎng)。為了適應(yīng)社會(huì)的需求,開設(shè)Python課程的高校越來越多。然而,傳統(tǒng)Python考試工作需要人工完成出題、印刷以及判分等工作,需要花費(fèi)大量時(shí)間和精力。通過Python在線考試系統(tǒng)達(dá)到了簡(jiǎn)化考試流程的目的,實(shí)現(xiàn)了試卷批閱、統(tǒng)計(jì)成績(jī)等的自動(dòng)化,減輕了教師和管理人員的工作量

2 實(shí)現(xiàn)效果

本在線考試網(wǎng)主要采用在Pycharm嵌入Django動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)的B/S結(jié)構(gòu)設(shè)計(jì),系統(tǒng)從安全性、易維護(hù)性等方面著手實(shí)現(xiàn)了后臺(tái)管理端和前臺(tái)客戶端的分離。系統(tǒng)設(shè)計(jì)過程中用到了網(wǎng)頁(yè)制作關(guān)鍵技術(shù),如用框架和CSS樣式表來控制布局,還用了Python腳本語言實(shí)現(xiàn)前臺(tái)瀏覽器端的校驗(yàn)功能。Python模式是Web網(wǎng)站開發(fā)較為成功的解決方案,因此在本系統(tǒng)中也采用了這一模式來設(shè)計(jì)。

登錄界面
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python注冊(cè)界面
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

題目選擇
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

主界面
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

考試界面

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python
成績(jī)查詢
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python
個(gè)人中心
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python
關(guān)鍵代碼

from django.db import models
from question.models import Choice, Fill, Judge, Program
from user.models import Student, Clazz
from datetime import datetime
import random


# Create your models here.
class Paper(models.Model):
    """試卷模型類"""
    LEVEL_CHOICES = (
        ('1', '入門'),
        ('2', '簡(jiǎn)單'),
        ('3', '普通'),
        ('4', '較難'),
        ('5', '困難')
    )
    name = models.CharField("試卷名稱", max_length=20, default="")
    score = models.PositiveSmallIntegerField("總分", default=100)
    choice_number = models.PositiveSmallIntegerField("選擇題數(shù)", default=10)
    fill_number = models.PositiveSmallIntegerField("填空題數(shù)", default=10)
    judge_number = models.PositiveSmallIntegerField("判斷題數(shù)", default=10)
    program_number = models.PositiveSmallIntegerField("編程題數(shù)", default=5)
    level = models.CharField("難度等級(jí)", max_length=1, choices=LEVEL_CHOICES, default="1")

    class Meta:
        ordering = ["id"]
        verbose_name = "試卷"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        self.score = (self.choice_number + self.fill_number + self.judge_number) * 2 + self.program_number * 8
        super().save(*args, **kwargs)


class Exam(models.Model):
    """考試模型類"""
    name = models.CharField("考試名稱", max_length=20, default="")
    exam_date = models.DateField("考試日期", default="")
    total_time = models.PositiveSmallIntegerField("時(shí)長(zhǎng)", default=120, help_text="時(shí)長(zhǎng)按照分鐘填寫")
    paper = models.OneToOneField(Paper, on_delete=models.CASCADE, verbose_name="試卷", default="")
    major = models.CharField("專業(yè)", max_length=20, default="")
    tips = models.TextField("考生須知", default="")
    clazzs = models.ManyToManyField(Clazz, verbose_name="參加考試的班級(jí)")

    class Meta:
        ordering = ["id"]
        db_table = 'exam_info'
        verbose_name = "考試"
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name


class Grade(models.Model):
    """成績(jī)模型類"""
    exam = models.ForeignKey(Exam, verbose_name="考試", on_delete=models.CASCADE)
    student = models.ForeignKey(Student, verbose_name="學(xué)生", on_delete=models.CASCADE)
    score = models.PositiveSmallIntegerField("分?jǐn)?shù)", default="")
    create_time = models.DateTimeField("創(chuàng)建日期", auto_now_add=True)
    update_time = models.DateTimeField("修改日期", auto_now=True)

    class Meta:
        ordering = ['id']
        verbose_name = '成績(jī)'
        verbose_name_plural = verbose_name

    def __str__(self):
        return f'{self.id}{self.student}{self.score}分'


class Practice(models.Model):
    """模擬練習(xí)"""
    name = models.CharField("練習(xí)名稱", max_length=20)
    student = models.ForeignKey(Student, verbose_name="學(xué)生", on_delete=models.CASCADE)
    create_time = models.DateTimeField("練習(xí)時(shí)間", auto_now_add=True)

    class Meta:
        ordering = ['id']
        verbose_name = '練習(xí)'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        self.name = f'模擬練習(xí){datetime.now().strftime("%Y%m%d")}{random.randint(1000, 9999)}'
        super().save(*args, **kwargs)

3 Django框架

Django是一個(gè)基于Web的應(yīng)用框架,由python編寫。Web開發(fā)的基礎(chǔ)是B/S架構(gòu),它通過前后端配合,將后臺(tái)服務(wù)器的數(shù)據(jù)在瀏覽器上展現(xiàn)給前臺(tái)用戶的應(yīng)用。Django本身是基于MVC模型,即Model(模型)+View(視圖)+ Controller(控制器)設(shè)計(jì)模式,View模塊和Template模塊組成了它的視圖部分,這種結(jié)構(gòu)使動(dòng)態(tài)的邏輯是剝離于靜態(tài)頁(yè)面處理的。 Django框架的Model層本質(zhì)上是一套ORM系統(tǒng),封裝了大量的數(shù)據(jù)庫(kù)操作API,開發(fā)人員不需要知道底層的數(shù)據(jù)庫(kù)實(shí)現(xiàn)就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查等操作。Django強(qiáng)大的QuerySet設(shè)計(jì)能夠?qū)崿F(xiàn)非常復(fù)雜的數(shù)據(jù)庫(kù)查詢操作,且性能接近原生SQL語句。Django支持包括PostgreSQL、My Sql、SQLite、Oracle在內(nèi)的多種數(shù)據(jù)庫(kù)。Django的路由層設(shè)計(jì)非常簡(jiǎn)潔,使得將控制層、模型層和頁(yè)面模板獨(dú)立開進(jìn)行開發(fā)成為可能。基于Django的Web系統(tǒng)工程結(jié)構(gòu)示意圖如圖所示。

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

從圖中可以看到,一個(gè)完整的Django工程由數(shù)個(gè)分應(yīng)用程序組成,每個(gè)分應(yīng)用程序包括四個(gè)部分:

urls路由層:決定Web系統(tǒng)路由結(jié)構(gòu),控制頁(yè)面間的跳轉(zhuǎn)和數(shù)據(jù)請(qǐng)求路徑

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

views視圖層:業(yè)務(wù)層,主要進(jìn)行邏輯操作和運(yùn)算,是前端頁(yè)面模板和后端數(shù)據(jù)庫(kù)之間的橋梁。Django框架提供了大量的數(shù)據(jù)庫(kù)操作API,開發(fā)人員甚至不需要使用SQL語句即可完成大部分的數(shù)據(jù)庫(kù)操作。
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

models模型層:Web應(yīng)用連接底層數(shù)據(jù)庫(kù)的關(guān)鍵部分,封裝了數(shù)據(jù)庫(kù)表結(jié)構(gòu)和實(shí)現(xiàn)。開發(fā)人員可以在Model層按照Django的指令要求進(jìn)行建表,無須使用SQL語句或者第三方建表工具進(jìn)行建表。建表的過程類似于定義變量和抽象編程語言中的類,非常方便。

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

templates模板層:HTML模板文件,后端數(shù)據(jù)會(huì)填充HTML模板,渲染之后返回給前端請(qǐng)求。考慮到項(xiàng)目周期盡可能小,盡快完成平臺(tái)的搭建,項(xiàng)目決定采用開源的Django框架開發(fā)整個(gè)系統(tǒng)的Web應(yīng)用層。

【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python
關(guān)鍵代碼

def main():
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ExamOnline.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


4 VUE

簡(jiǎn)介
Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。Vue采用自底向上增量開發(fā)的設(shè)計(jì),提供了MVVM數(shù)據(jù)綁定和可組合的組件系統(tǒng),具有簡(jiǎn)單、靈活的API,通過簡(jiǎn)單的API可實(shí)現(xiàn)響應(yīng)式的數(shù)據(jù)綁定和可組合的視圖組件。

特點(diǎn)
Vue.js 使用了基于 HTML 的模版語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實(shí)例的數(shù)據(jù)。

Vue.js 的核心是一個(gè)允許你采用簡(jiǎn)潔的模板語法來聲明式的將數(shù)據(jù)渲染進(jìn) DOM 的系統(tǒng)。

vue.js 支持路由功能開發(fā)的 叫vue-route.js,vue.js支持?jǐn)?shù)據(jù)請(qǐng)求功能開發(fā)的 叫vue-resource.js,李祥需求查資料求證?

vue.js 下載過來直接在html中引入就能使用,并不一定要npm install vue,那仕么業(yè)務(wù)開發(fā)需求場(chǎng)景下需要使用NPM呢?NPM是仕么?

Vue.js可以在html里直接引用后使用,等到與Vue一起配合使用的第三方應(yīng)用的庫(kù)或框架多起來后,一個(gè)個(gè)從html里引入就不方便了,所有要借用node.js中的npm管理包的引入,是方便包管理。

使用Vue.js開發(fā)的前端項(xiàng)目如何部署?我們用到node.js中的程序打包工具比如webpack(node.js中的程序部署打包工具),可以直接require引入之后將不同模塊打包成單個(gè)js文件。同時(shí)這些工具提供各種自動(dòng)化處理,讓前端開發(fā)更爽。

Vue.js是數(shù)據(jù)驅(qū)動(dòng),和JQuery思路不同,你幾乎不需要自己進(jìn)行復(fù)雜低效的dom操作,開發(fā)簡(jiǎn)介明了。從這一點(diǎn)上說,可以基本拋棄JQuery了。

Vue.js開發(fā)有第三方支持的項(xiàng)目構(gòu)建工具,vue-cli腳手架

通過上面的分析,與其說是VUE需要借助NODE開發(fā)前端項(xiàng)目,不如換個(gè)思路,在NODE中集成VUE開發(fā)前端項(xiàng)目,所以,先安裝Node,使用Node的npm先安裝Vue,然后再安裝vue-cli腳手架,最后通過vue-cli腳手架構(gòu)建前端項(xiàng)目。

本項(xiàng)目結(jié)構(gòu)
【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python

?? 選題指導(dǎo), 項(xiàng)目分享:

https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md文章來源地址http://www.zghlxwxcb.cn/news/detail-420891.html

最后

到了這里,關(guān)于【畢業(yè)設(shè)計(jì)】基于Django的在線考試系統(tǒng) python的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (附源碼)springboot課程在線考試系統(tǒng)  畢業(yè)設(shè)計(jì)655127

    (附源碼)springboot課程在線考試系統(tǒng) 畢業(yè)設(shè)計(jì)655127

    課程課程在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 摘 要 信息化社會(huì)內(nèi)需要與之針對(duì)性的信息獲取途徑,但是途徑的擴(kuò)展基本上為人們所努力的方向,由于站在的角度存在偏差,人們經(jīng)常能夠獲得不同類型信息,這也是技術(shù)最為難以攻克的課題。針對(duì)課程在線考試等問題,對(duì)如何通過計(jì)算

    2024年02月03日
    瀏覽(21)
  • 畢業(yè)設(shè)計(jì)——基于java+vue開發(fā)的在線教育平臺(tái),將開發(fā)PC、小程序、手機(jī)端,集成RABC權(quán)限+在線考試+文檔預(yù)覽+視頻播放+代碼生成器等功能

    完整項(xiàng)目地址:https://download.csdn.net/download/lijunhcn/88556337 本項(xiàng)目是基于java+vue開發(fā)的[在線教育平臺(tái)],將開發(fā)PC、小程序、手機(jī)端,集成RABC權(quán)限+在線考試+文檔預(yù)覽+視頻播放+代碼生成器等功能。 版本控制:git 依賴管理:maven 接口文檔:Swagger 權(quán)限驗(yàn)證:Spring Security 數(shù)據(jù)庫(kù):

    2024年02月03日
    瀏覽(93)
  • 畢業(yè)設(shè)計(jì)開源分享:SpringCloud+Vue3打造在線考試系統(tǒng)

    畢業(yè)設(shè)計(jì)開源分享:SpringCloud+Vue3打造在線考試系統(tǒng)

    畢業(yè)設(shè)計(jì):為考-考試系統(tǒng),后端采用 Spring Cloud ,前端采用 Vue 3,存儲(chǔ)采用 Mysql ,緩存采用 Redis 。完成基本的考試功能。完成了遺傳算法自動(dòng)組卷、文本批量導(dǎo)入題庫(kù),邀請(qǐng)碼加入課程、數(shù)據(jù)可視化等一系列前后端功能。悄悄的說一下,如果你覺得本項(xiàng)目還湊合,可以給個(gè)

    2024年02月05日
    瀏覽(33)
  • 【計(jì)算機(jī)畢業(yè)設(shè)計(jì)】python在線課程培訓(xùn)學(xué)習(xí)考試系統(tǒng)637r7-PyCharm項(xiàng)目

    【計(jì)算機(jī)畢業(yè)設(shè)計(jì)】python在線課程培訓(xùn)學(xué)習(xí)考試系統(tǒng)637r7-PyCharm項(xiàng)目

    使用說明 使用Navicat或者其它工具,在mysql中創(chuàng)建對(duì)應(yīng)名稱的數(shù)據(jù)庫(kù),并導(dǎo)入項(xiàng)目的sql文件; 使用PyCharm 導(dǎo)入項(xiàng)目,修改配置,運(yùn)行項(xiàng)目; 將項(xiàng)目中config.ini配置文件中的數(shù)據(jù)庫(kù)配置改為自己的配置,然后運(yùn)行;主要管理員對(duì)個(gè)人中心、用戶管理、課程類型管理、課程信息管理

    2024年02月07日
    瀏覽(98)
  • 【畢業(yè)設(shè)計(jì)之python系列】基于Django的在線題庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

    【畢業(yè)設(shè)計(jì)之python系列】基于Django的在線題庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)

    ????????隨著互聯(lián)網(wǎng)和信息技術(shù)的迅速發(fā)展,教育領(lǐng)域也在不斷地進(jìn)行著數(shù)字化轉(zhuǎn)型。在線學(xué)習(xí)平臺(tái)、學(xué)科競(jìng)賽等各種教育形式層出不窮。其中,線上題庫(kù)已經(jīng)成為了學(xué)生們備戰(zhàn)考試的重要工具。因此,開發(fā)一款基于Django框架的在線題庫(kù)系統(tǒng),可以有效地幫助學(xué)生提高自己

    2024年02月13日
    瀏覽(26)
  • 在線考試|基于Springboot的在線考試管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(源碼+數(shù)據(jù)庫(kù)+文檔)

    在線考試|基于Springboot的在線考試管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)(源碼+數(shù)據(jù)庫(kù)+文檔)

    在線考試管理系統(tǒng)目錄 目錄 基于Springboot的在線考試管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 一、前言 二、系統(tǒng)設(shè)計(jì) 三、系統(tǒng)功能設(shè)計(jì)? 1、前臺(tái): 2、后臺(tái) 管理員功能 四、數(shù)據(jù)庫(kù)設(shè)計(jì) ?五、核心代碼? 六、論文參考 七、最新計(jì)算機(jī)畢設(shè)選題推薦 八、源碼獲?。?博主介紹 :??大廠碼農(nóng)|畢設(shè)

    2024年04月11日
    瀏覽(90)
  • 基于python在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于python在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    主要講解本系統(tǒng)設(shè)計(jì)到的文件和所存在路徑等 ? 系統(tǒng)訪問 默認(rèn)訪問系統(tǒng)頁(yè)面:http://127.0.0.1:8000 后臺(tái)管理登錄頁(yè)面:http://127.0.0.1:8000/ht/ 默認(rèn)賬號(hào)admin 密碼123456 后臺(tái)管理系統(tǒng)框架路由文件: houtai/urls.py 這是開源的后臺(tái)管理框架,不要?jiǎng)?,下面的這些文件供參考,了解即可 路

    2024年02月11日
    瀏覽(94)
  • 基于java的在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于java的在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 研究背景: 隨著互聯(lián)網(wǎng)技術(shù)和教育信息化的發(fā)展,傳統(tǒng)的考試方式已經(jīng)無法滿足現(xiàn)代教學(xué)的需求。在線考試系統(tǒng)作為一種新型的考試方式,具有便捷、高效、靈活、安全等優(yōu)點(diǎn),逐漸得到了廣泛的應(yīng)用。在線考試系統(tǒng)可以實(shí)現(xiàn)試卷自動(dòng)生成

    2024年02月04日
    瀏覽(94)
  • 基于JAVA在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    基于JAVA在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    摘要 隨著考試類型的不斷增加與考試要求的不同提出,就更加增添了考試的復(fù)雜度,同時(shí)目前考試系統(tǒng)設(shè)置的科目,題庫(kù)量太少,管理復(fù)雜,而且實(shí)際操作起來困難度較大,所以就需要一種代替人工出卷考試的傳統(tǒng)考試方法,即在線智能考試系統(tǒng),通過其友好的界面,簡(jiǎn)潔的

    2024年02月03日
    瀏覽(89)
  • 29基于java的在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    29基于java的在線考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    本章節(jié)來介紹一個(gè)基于java的在線考試系統(tǒng)的實(shí)現(xiàn) 近年來,隨著世界各國(guó)需要參加考核的人員與日俱增,單純依靠傳統(tǒng)的人工安排考場(chǎng)和監(jiān)考人員的紙質(zhì)化考試逐漸顯示出了效率低,易發(fā)生沖突的缺陷,這時(shí),在線考試系統(tǒng)便應(yīng)運(yùn)而生,此種考試方式以方便快捷高效等優(yōu)點(diǎn)將

    2024年02月03日
    瀏覽(90)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包