程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

計算機畢業設計Python+django 網上外賣訂餐系統(源碼+系統+mysql數據庫+Lw文檔)

編輯:Python

項目介紹

本論文主要論述了如何使用python語言開發一個網上訂餐系統 ,本系統將嚴格按照軟件開發流程進行各個階段的工作,采用B/S架構,面向對象編程思想進行項目開發。在引言中,作者將論述網上訂餐系統 的當前背景以及系統開發的目的,後續章節將嚴格按照軟件開發流程,對系統進行各個階段分析設計。
網上訂餐系統的主要使用者分為管理員、商家和用戶,實現功能包括管理員:首頁、個人中心、個人信息、菜品類型管理,論壇管理、系統管理、商家管理、菜品信息管理、投訴建議管理、用戶管理、訂單信息管理、評價信息管理等等。商家管理:個人中心、個人信息、菜品信息、投訴建議管理、訂單信息管理、評價信息等功能。用戶管理:個人中心、個人信息、投訴建議管理、訂單信息管理、評價信息、我的收藏等等。由於本網站的功能模塊設計比較全面,所以使得整個網上訂餐系統 的過程得以實現。


登錄模塊主要滿足了管理員以及用戶的權限登錄

管理員以及用戶登錄後均可進行添加信息操作,添加信息模塊順序圖如圖

開發環境

開發語言:Python
python框架:django
軟件版本:python3.7/python3.8
數據庫:mysql 5.7或更高版本
數據庫工具:Navicat11
開發軟件:PyCharm/vs code
前端框架:vue.js
可開發框架:ssm/Springboot/vue/python/PHP/小程序/安卓均可開發

系統截圖

用戶在前台菜品信息中可以查看菜品的詳情頁面,並可以進行下單、支付、收藏等操作如圖


管理員輸入個人的賬號、密碼登錄系統,這時候系統的數據庫就會在進行查找相關的信息,如果我們輸入的賬號、密碼和驗證碼不正確,數據庫就會提示出錯誤的信息提示,同時會提示管理員重新輸入輸入自己的賬號、密碼和驗證碼,直到賬號密碼輸入成功後,會提登錄成功的信息。
管理員對菜品信息管理信息進行上傳、刪除、修改以及查看等操作。程序效果圖如下圖
管理員對用戶信息進行用戶名、用戶姓名、密碼性別等等進行添加、查看、修改以及刪除等操作。程序效果圖如下圖

管理員對訂單信息編輯訂單編號、商家號、菜品編號、菜品名稱、數量、價格、總金額等等進行刪除、修改以及查看等操作。程序效果圖如下圖
在商家管理頁面可以查看菜品編號、城市、菜品名稱、菜品類型、價格、數量等內容,並可根據需要對添加、刪除、修改以及查看詳細內容操作

1 緒論 1
1.1 研究背景 1
1.2 研究現狀 1
1.3 研究內容 2
2 系統關鍵技術 3
2.1 python技術 3
2.2Dango框架 3
2.3 MYSQL數據庫 4
2.4 B/S結構 4
3 系統分析 5
3.1 可行性分析 5
3.1.1 技術可行性 5
3.1.2經濟可行性 5
3.1.3操作可行性 5
3.2 系統性能分析 5
3.3 系統功能分析 6
3.5系統流程分析 7
3.5.1登錄流程 7
3.5.2注冊流程 8
3.5.3添加信息流程 8
3.5.4刪除信息流程 9
4 系統設計 10
4.1系統概要設計 10
4.2系統結構設計 10
4.3系統順序圖設計 11
4.3.1登錄模塊順序圖 11
4.3.2添加信息模塊順序圖 11
4.4數據庫設計 12
4.4.1數據庫E-R圖設計 12
4.3.2數據庫表設計 14
5 .1系統的實現 17
5.2 管理員功能模塊 18

5.3商家功能模塊 21
5.4.用戶前後台管理 21
6 系統測試 23
6.1 測試定義 23
6.2 測試目的 23
6.3測試方案 24
6.4系統分析 26
7 結論 27
參考文獻 28
謝辭 29

關鍵代碼

def caipinxinxi_register(request):
if request.method in ["POST", "GET"]:
msg = {
'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = caipinxinxi.createbyreq(caipinxinxi, caipinxinxi, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def caipinxinxi_login(request):
if request.method in ["POST", "GET"]:
msg = {
'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
datas = caipinxinxi.getbyparams(caipinxinxi, caipinxinxi, 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, caipinxinxi, req_dict)
def caipinxinxi_logout(request):
if request.method in ["POST", "GET"]:
msg = {

"msg": "登出成功",
"code": 0
}
return JsonResponse(msg)
def caipinxinxi_resetPass(request):
''' '''
if request.method in ["POST", "GET"]:
msg = {
"code": normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
error = caipinxinxi.updatebyparams(caipinxinxi,caipinxinxi, req_dict)
if error != None:
msg['code'] = crud_error_code
msg['msg'] = error
return JsonResponse(msg)
def caipinxinxi_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'] = caipinxinxi.getbyparams(caipinxinxi, caipinxinxi, req_dict)[0]
return JsonResponse(msg)
def caipinxinxi_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")
#當列屬性authTable有值(某個用戶表)[該列的列名必須和該用戶表的登陸字段名一致],則對應的表有個隱藏屬性authTable為”是”,那麼該用戶查看該表信息時,只能查看自己的
try:
__authTables__=caipinxinxi.__authTables__
except:
__authTables__=None
if __authTables__!=None and __authTables__!={
}:
for authColumn,authTable in __authTables__.items():
if authTable==tablename:
params = request.session.get("params")
req_dict[authColumn]=params.get(authColumn)
break
#當項目屬性hasMessage為”是”,生成系統自動生成留言板的表messages,同時該表的表屬性hasMessage也被設置為”是”,字段包括userid(用戶id),username(用戶名),content(留言內容),reply(回復)
#接口page需要區分權限,普通用戶查看自己的留言和回復記錄,管理員查看所有的留言和回復記錄
try:
__hasMessage__=caipinxinxi.__hasMessage__
except:
__hasMessage__=None
if __hasMessage__=="是":
tablename=request.session.get("tablename")
if tablename!="users":
req_dict["userid"]=request.session.get("params").get("id")
if tablename == "users" and req_dict.get("userid") != None:
del req_dict["userid"]
else:
# 判斷當前表的表屬性isAdmin,為真則是管理員表
# 當表屬性isAdmin=”是”,刷出來的用戶表也是管理員,即page和list可以查看所有人的考試記錄(同時應用於其他表)
__isAdmin__ = None
allModels = apps.get_app_config('main').get_models()
for m in allModels:
if m.__tablename__==tablename:
try:
__isAdmin__ = m.__isAdmin__
except:
__isAdmin__ = None
break
# 當前表也是有管理員權限的表
if __isAdmin__ == "是":
del req_dict["userid"]
else:
#非管理員權限的表,判斷當前表字段名是否有userid
if tablename!="users" and "userid" in caipinxinxi.getallcolumn(caipinxinxi,caipinxinxi):
req_dict["userid"] = request.session.get("params").get("id")
msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
msg['data']['pageSize'] =caipinxinxi.page(caipinxinxi, caipinxinxi, req_dict)
return JsonResponse(msg)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved