?IT實(shí)戰(zhàn)營(yíng)站長(zhǎng),擁有10年軟件相關(guān)系統(tǒng)架構(gòu)及教學(xué)經(jīng)驗(yàn),Java、大數(shù)據(jù)培訓(xùn)講師,曾任公司技術(shù)總監(jiān);其與團(tuán)隊(duì)成員,陸續(xù)錄制了一系列計(jì)算機(jī)畢業(yè)設(shè)計(jì)項(xiàng)目課程,可供大家學(xué)習(xí)參考,現(xiàn)公司全新升級(jí)提供專業(yè)售后團(tuán)隊(duì)與技術(shù)交流群!?
???文末獲取聯(lián)系??
目錄
一、項(xiàng)目介紹?
二、功能模塊
三、代碼介紹
四、參考lunwen
五、相關(guān)案例
六、源碼獲取
一、項(xiàng)目介紹?
考試基本是每個(gè)學(xué)生都要面對(duì)的一個(gè)問題,學(xué)生時(shí)代每個(gè)學(xué)期都要經(jīng)歷大大小小的考試,很多時(shí)候在考前刷題可以更好的掌握所學(xué)的知識(shí),為了讓學(xué)生能夠有一個(gè)更加方便的在線刷題系統(tǒng)為此我開發(fā)了本次的基于微信的刷題小程序
本基于微信的刷題小程序是根據(jù)當(dāng)前刷題管理的實(shí)際情況開發(fā)的,在系統(tǒng)語言選擇上我們使用的Python語言,數(shù)據(jù)庫(kù)是小巧靈活的MySQL數(shù)據(jù)庫(kù),本系統(tǒng)的開發(fā)可以極大的滿足了刷題的需求。
基于微信的刷題小程序是一個(gè)可以很大程度上解決刷題管理問題的系統(tǒng)?;谖⑿诺乃㈩}小程序分為小程序部分和后臺(tái)管理兩部分。小程序主要功能包含:注冊(cè)登錄,首頁,試卷列表,在線考試,考試記錄和錯(cuò)題等功能;后臺(tái)管理部分功能主要包括系統(tǒng)首頁,個(gè)人中心,教師管理,學(xué)生管理,試卷管理,試題管理,系統(tǒng)管理,考試管理等功能?;谖⑿诺乃㈩}小程序主要使用MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)環(huán)境是微信開發(fā)工具和Hbuilder以及pycharm,本系統(tǒng)的開發(fā)基本滿足了在線刷題管理的需要。
關(guān)鍵詞:在線,刷題,MySQL,微信小程序
下面是資料信息截圖:
二、功能模塊
3.1.1?功能需求
基于微信的刷題小程序是一個(gè)可以很大程度上解決刷題管理問題的系統(tǒng)?;谖⑿诺乃㈩}小程序分為小程序部分和后臺(tái)管理兩部分。小程序主要功能包含:注冊(cè)登錄,首頁,試卷列表,在線考試,考試記錄和錯(cuò)題等功能;后臺(tái)管理部分功能主要包括系統(tǒng)首頁,個(gè)人中心,教師管理,學(xué)生管理,試卷管理,試題管理,系統(tǒng)管理,考試管理等功能?;谖⑿诺乃㈩}小程序主要使用MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)環(huán)境是微信開發(fā)工具和Hbuilder以及pycharm,本系統(tǒng)的開發(fā)基本滿足了在線刷題管理的需要。
4.1?系統(tǒng)結(jié)構(gòu)
基于微信的刷題小程序是一個(gè)可以很大程度上解決刷題管理問題的系統(tǒng)?;谖⑿诺乃㈩}小程序分為小程序部分和后臺(tái)管理兩部分。小程序主要功能包含:注冊(cè)登錄,首頁,試卷列表,在線考試,考試記錄和錯(cuò)題等功能;后臺(tái)管理部分功能主要包括系統(tǒng)首頁,個(gè)人中心,教師管理,學(xué)生管理,試卷管理,試題管理,系統(tǒng)管理,考試管理等功能?;谖⑿诺乃㈩}小程序主要使用MySQL作為數(shù)據(jù)庫(kù)管理系統(tǒng),開發(fā)環(huán)境是微信開發(fā)工具和Hbuilder以及pycharm,本系統(tǒng)的開發(fā)基本滿足了在線刷題管理的需要。具體功能如下圖所示
小程序端功能設(shè)計(jì)
5.1.1用戶注冊(cè)
當(dāng)用戶想要查看和進(jìn)行刷題管理的時(shí)候一定要進(jìn)行注冊(cè)登錄才可以,沒有注冊(cè)登錄的時(shí)候是不能進(jìn)行刷題管理相關(guān)信息的操作,當(dāng)基于微信的刷題小程序的使用者點(diǎn)擊注冊(cè)菜單會(huì)跳轉(zhuǎn)到對(duì)應(yīng)的注冊(cè)頁面中來,在注冊(cè)頁面中需要輸入對(duì)應(yīng)的用戶名和密碼以及性別,手機(jī)等內(nèi)容即可示
?
服務(wù)器端功能的實(shí)現(xiàn)
5.2.1登錄功能
基于微信的刷題小程序分為服務(wù)器端和小程序端,服務(wù)器端主要是給管理人員和教師使用的,管理人員和教師需要登錄以后才可以對(duì)系統(tǒng)內(nèi)的一些功能進(jìn)行操作,所以系統(tǒng)打開之后的第一個(gè)界面就是登錄界面,在登錄界面中輸入賬號(hào)和密碼并點(diǎn)擊登錄即可。
學(xué)生管理
基于微信的刷題小程序的操作人員可以管理學(xué)生,在學(xué)生管理中輸入對(duì)應(yīng)的學(xué)生學(xué)號(hào)+學(xué)生姓名+密碼+性別+頭像+手機(jī)號(hào)碼+郵箱等基本信息后點(diǎn)擊學(xué)生管理中的[提交]按鈕,系統(tǒng)會(huì)將用戶輸入的信息通過add方法將數(shù)據(jù)添加到數(shù)據(jù)庫(kù)xuesheng表中,在頁面中我們通過required來進(jìn)行控件的非空驗(yàn)證,這樣用戶在沒有輸入信息的時(shí)候系統(tǒng)會(huì)給出對(duì)應(yīng)的提示?;谖⑿诺乃㈩}小程序?qū)W生信息添加界面如圖 5-3
基于微信的刷題小程序的管理員在上一步中對(duì)學(xué)生信息進(jìn)行了添加操作之后還根據(jù)對(duì)學(xué)生信息進(jìn)行管理的操作,主要包括根據(jù)關(guān)鍵字對(duì)學(xué)生信息進(jìn)行查詢,對(duì)有誤的信息進(jìn)行修改,對(duì)不需要的學(xué)生信息進(jìn)行刪除等操作?;谖⑿诺乃㈩}小程序?qū)W生管理界面如圖5-4所示
三、代碼介紹
注冊(cè)模塊相關(guān)代碼
# coding:utf-8
__author__ = "ila"
from django.http import JsonResponse
from .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes
def users_login(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
if req_dict.get('role')!=None:
del req_dict['role']
datas = users.getbyparams(users, users, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, users, req_dict)
def users_register(request):
if request.method in ["POST", "GET"]:
msg = {'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = users.createbyreq(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_session(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}
req_dict = {"id": request.session.get('params').get("id")}
msg['data'] = users.getbyparams(users, users, req_dict)[0]
return JsonResponse(msg)
def users_logout(request):
if request.method in ["POST", "GET"]:
msg = {
"msg": "退出成功",
"code": 0
}
return JsonResponse(msg)
def users_page(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code,
"data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
req_dict = request.session.get("req_dict")
tablename = request.session.get("tablename")
try:
__hasMessage__ = users.__hasMessage__
except:
__hasMessage__ = None
if __hasMessage__ and __hasMessage__ != "否":
if tablename != "users":
req_dict["userid"] = request.session.get("params").get("id")
if tablename == "users":
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = users.page(users, users, req_dict)
else:
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] = [],1,0,0,10
return JsonResponse(msg)
def users_info(request, id_):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
data = users.getbyid(users, users, int(id_))
if len(data) > 0:
msg['data'] = data[0]
# 瀏覽點(diǎn)擊次數(shù)
try:
__browseClick__ = users.__browseClick__
except:
__browseClick__ = None
if __browseClick__ and "clicknum" in users.getallcolumn(users, users):
click_dict = {"id": int(id_), "clicknum": str(int(data[0].get("clicknum", 0)) + 1)}
ret = users.updatebyparams(users, users, click_dict)
if ret != None:
msg['code'] = crud_error_code
msg['msg'] = ret
return JsonResponse(msg)
def users_save(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
error = users.createbyreq(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_update(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
if req_dict.get("mima") and req_dict.get("password"):
if "mima" not in users.getallcolumn(users,users):
del req_dict["mima"]
if "password" not in users.getallcolumn(users,users):
del req_dict["password"]
try:
del req_dict["clicknum"]
except:
pass
error = users.updatebyparams(users, users, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def users_delete(request):
'''
'''
if request.method in ["POST", "GET"]:
msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}
req_dict = request.session.get("req_dict")
error = users.deletes(users,
users,
req_dict.get("ids")
)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
用戶登錄相關(guān)代碼:?
import { DataTypes } from 'sequelize'
import sequelize from './sequelize'
const ConfigModel = sequelize.define('ConfigModel', {
id: {
type: DataTypes.BIGINT,
primaryKey: true,
autoIncrement: true,
allowNull: false,
comment: '主鍵id'
},
name: {
type: DataTypes.STRING,
allowNull: false,
comment: '配置參數(shù)名稱'
},
value: {
type: DataTypes.STRING,
allowNull: true,
comment: '配置參數(shù)值'
}
}, {
timestamps: false,
freezeTableName: true,
tableName: 'config'
})
export default ConfigModel
四、參考lunwen
五、相關(guān)案例
?
?文章來源:http://www.zghlxwxcb.cn/news/detail-764429.html
六、源碼獲取
大家點(diǎn)贊、收藏、關(guān)注、評(píng)論啦 、查看????????????獲取聯(lián)系方式????????????文章來源地址http://www.zghlxwxcb.cn/news/detail-764429.html
到了這里,關(guān)于python畢業(yè)設(shè)計(jì)項(xiàng)目基于微信的刷題小程序的設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!