【Django毕业设计源码】python在线办公系统
目录
一、程序介绍:
三、文档目录:
四、运行截图:
五、数据库表:
六、代码展示:
七、更多学习目录:
八、互动留言
一、程序介绍:
- 文档:开发技术文档、参考LW、答辩PPT,部分项目另有其他文档
- 开发环境:Pytharm(python3.7以上)丨微信开发者工具丨navicat12丨mysql5.7
- 配套工具:涉及项目开发运行的全部软件均提供
- 项目运行视频或截图:提供
- 运行电脑配置要求:内存≥8G, CPU i3及以上
- 运行教学:指导
- 项目修改教学:有
- 代码讲解:代码结构讲解
三、文档目录:
四、运行截图:
五、数据库表:
六、代码展示:
from app.service import service_select
from app.core.mysql import MysqlPool
import json
import csv
import ast
import osmysqlPool = MysqlPool()# 帮助方法,合并对象
def obj_update(*config):config_temp = {}for o in config:config_temp.update(o)return config_temp# 权限集合
dict_auth = {}# 控制器父类
class Controller:def __init__(self, config):"""构造函数@param {Dictionary} config 配置参数"""# 配置参数self.config = config or {}# 添加服务self.service = service_select(self.config["service"])cg = {# 选择的模板那路径模板"tpl":"./index/",# 选择的服务"service":"user",# 注册get请求路由"get": ["list", "view", "table"],# 注册post请求路由"post": [],# 注册get api路由"get_api": ["del","get_list","get_obj","count","count_group","sum","sum_group","avg","avg_group","list_group","bar_group","get_hits_list"],# 注册post api路由"post_api": ["add", "del", "set", "import_db", "export_db", "upload"],"interact": [],"unique": []}if config:if "interact" in config:config["interact"].extend(cg["interact"])else:config["interact"] = cg["interact"]if "get" in config:config["get"].extend(cg["get"])else:config["get"] = cg["get"]if "post" in config:config["post"].extend(cg["post"])else:config["post"] = cg["post"]if "get_api" in config:config["get_api"].extend(cg["get_api"])else:config["get_api"] = cg["get_api"]if "post_api" in config:config["post_api"].extend(cg["post_api"])else:config["post_api"] = cg["post_api"]if "unique" in config:config["unique"].extend(cg["unique"])else:config["unique"] = cg["unique"]# 公共模型,用于在render()为传递模板数据补充def model(self, ctx, model):m = {}m.update(model)## model_temp.user = ctx.session.user# 获取导航service = service_select("nav")m["nav_top"] = service.Get_list({"location": "top"})m["nav_side"] = service.Get_list({"location": "side"})m["nav_foot"] = service.Get_list({"location": "foot"})# 获取轮播图service = service_select("slides")m["list_slides"] = service.Get_list({})# 获取公告service = service_select("notice")m["list_notice"] = service.Get_list({},{"orderby": "`update_time` desc"})# 交互模型接口if ("interact" in self.config) and self.config["interact"]:m = self.model_interact(ctx, m)m["query"] = ctx.querym["body"] = ctx.bodym["auth"] = ctx.authreturn m# 交互对象def interact_obj(self, ctx, o):interact = self.config["interact"]if interact:source_table = service_select(self.config["service"]).config["table"]source_field = source_table + "_id"# 评论if "comment" in interact:service = service_select("comment")source_id = o[source_field]o["comment_list"] = service.Get_list({"source_table": source_table,"source_field": source_field,"source_id": source_id}, {"page": 1,"size": 10,})o["comment_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})# 评分if "score" in interact:service = service_select("score")source_id = o[source_field]o["score_list"] = service.Get_list({"source_table": source_table,"source_field": source_field,"source_id": source_id}, {"page": 1,"size": 10,})o["score_len"] = service.Avg({"source_table": source_table,"source_field": source_field,"source_id": source_id,},{"field": "score_num"},)# 收藏if "collect" in interact:service = service_select("collect")source_id = o[source_field]o["collect_list"] = service.Get_list({"source_table": source_table,"source_field": source_field,"source_id": source_id}, {"page": 1,"size": 10,})o["collect_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})# 点赞if "praise" in interact:service = service_select("praise")source_id = o[source_field]o["praise_list"] = service.Get_list({"source_table": source_table,"source_field": source_field,"source_id": source_id,}, {"page": 1,"size": 10,})o["praise_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})return o# 交互列表def interact_list(self, ctx, list_1):interact = self.config["interact"]if interact:source_table = service_select(self.config["service"]).config["table"]source_field = source_table + "_id"# 评论数if "comment" in interact:service = service_select("comment")for o in list_1:source_id = o[source_field]o["comment_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})# 平均分if "score" in interact:service = service_select("score")for o in list_1:source_id = o[source_field]o["score_len"] = service.Avg({"source_table": source_table,"source_field": source_field,"source_id": source_id,},{"field": "score_num"},)# 收藏人数if "collect" in interact:service = service_select("collect")for o in list_1:source_id = o[source_field]o["collect_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})# 点赞人数if "praise" in interact:service = service_select("praise")for o in list_1:source_id = o[source_field]o["praise_len"] = service.Count({"source_table": source_table,"source_field": source_field,"source_id": source_id,})# 交互模型def model_interact(self, ctx, m):if ("list" in m) and m["list"]:self.interact_list(ctx, m["list"])elif ("obj" in m) and m["obj"]:self.interact_obj(ctx, m["obj"])return m"""公共参数校验"""def Check_param(self, ctx):return True# 首页def Index(self, ctx):"""首页@param {Object} ctx http请求上下文@return {Object} 返回html页面"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldif "page" in query:page = query.pop("page")config_plus["page"] = pageif "size" in query:size = query.pop("size")config_plus["size"] = sizeresult_list = self.service.Get_list(query, obj_update(self.config, config_plus))result_dict = {"list": result_list}model = self.model(ctx, result_dict)return ctx.render(self.config["tpl"] + "index" + ".html", model)def Api(self, ctx):return {"demo": "hello world!"}# 列表页面def List(self, ctx):"""列表页面@param {Object} ctx http请求上下文@return {Object} 返回html页面"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldif "page" in query:page = query.pop("page")config_plus["page"] = pageif "size" in query:size = query.pop("size")config_plus["size"] = sizeresult_list = self.service.Get_list(query, obj_update(self.config, config_plus))result_dict = {"list": result_list}model = self.model(ctx, result_dict)return ctx.render(self.config["tpl"] + "list" + ".html", model)# 表格页面def Table(self, ctx):"""表格页面@param {Object} ctx http请求上下文@return {Object} 返回html页面"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldif "page" in query:page = query.pop("page")config_plus["page"] = pageif "size" in query:size = query.pop("size")config_plus["size"] = sizeresult_list = self.service.Get_list(query, obj_update(self.config, config_plus))result_dict = {"list": result_list}model = self.model(ctx, result_dict)return ctx.render(self.config["tpl"] + "table" + ".html", model)# 详情页面def View(self, ctx):"""详情页面@param {Object} ctx http请求上下文@return {Object} 返回html页面"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldobj_result = self.service.Get_obj(query,obj_update(self.config, config_plus))obj_dict = {"obj": obj_result}model = self.model(ctx, obj_dict)return ctx.render(self.config["tpl"] + "view" + ".html", model)# 编辑页面def Edit(self, ctx):"""编辑页面@param {Object} ctx http请求上下文@return {Object} 返回html页面"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldobj_result = self.service.Get_obj(query,obj_update(self.config, config_plus))obj_dict = {"obj": obj_result}model = self.model(ctx, obj_dict)return ctx.render(self.config["tpl"] + "edit" + ".html", model)# 增def Add(self, ctx):"""增@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""body = ctx.bodyunique = self.config.get("unique")obj = Noneif unique:qy = {}for i in range(len(unique)):key = unique[i]qy[key] = body.get(key)obj = self.service.Get_obj(qy)if not obj:# 添加数据前error = self.Add_before(ctx)if error["code"]:return {"error": error}error = self.Events("add_before", ctx, None)if error["code"]:return {"error": error}# 添加数据result = self.service.Add(body, self.config)# 添加数据发生错误if self.service.error:return {"error": self.service.error}# 添加数据成功后res = self.Add_after(ctx, result)if res:result = resres = self.Events("add_after", ctx, result)if res:result = resreturn {"result": result}else:return {"error": {"code": 10000, "message": "已存在"}}# 删def Del(self, ctx):"""删@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""if len(ctx.query) == 0:errorMsg = {"code": 30000, "message": "删除条件不能为空!"}return errorMsgresult = self.service.Del(ctx.query, self.config)if self.service.error:return {"error": self.service.error}return {"result": result}# 改def Set(self, ctx):"""改@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""# 修改数据前error = self.Set_before(ctx)if error["code"]:return {"error": error}error = self.Events("set_before", ctx, None)if error["code"]:return {"error": error}query = ctx.queryif 'page' in query.keys():del ctx.query['page']if 'size' in query.keys():del ctx.query['size']if 'orderby' in query.keys():del ctx.query['orderby']# 修改数据result = self.service.Set(ctx.query, ctx.body, self.config)# 修改数据发生错误if self.service.error:return {"error": self.service.error}# 修改数据成功后res = self.Set_after(ctx, result)if res:result = resres = self.Events("set_after", ctx, result)if res:result = resreturn {"result": result}# 查多条def Get_list(self, ctx):"""查多条@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldif "page" in query:config_plus["page"] = query.pop("page")if "size" in query:config_plus["size"] = query.pop("size")if "orderby" in query:config_plus["orderby"] = query.pop("orderby")if "like" in query:config_plus["like"] = query.pop("like")if "groupby" in query:config_plus["groupby"] = query.pop("groupby")count = self.service.Count(query)lst = []if self.service.error:return {"error": self.service.error}elif count:lst = self.service.Get_list(query,obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}self.interact_list(ctx, lst)return {"result": {"list": lst, "count": count}}# 查一条def Get_obj(self, ctx):"""查一条@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldobj = self.service.Get_obj(query, obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}if obj:self.interact_obj(ctx, obj)return {"result": {"obj": obj}}# 饼图统计def List_group(self, ctx):"""饼图统计@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "groupby" in query:groupby_t = query.pop("groupby")config_plus["groupby"] = groupby_telse:err = {"error": 30000, "message": "groupby的值不能为空!"}return errlt = self.service.Count_group(query,obj_update(self.config, config_plus))for o in lt:o[1] = o[groupby_t]o[0] = o["count"]if self.service.error:return {"error": self.service.error}return {"result": { "list": lt }}# 柱状图统计def Bar_group(self, ctx):"""柱状图统计@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldelse:err = {"error": 30000, "message": "field的值不能为空!"}return errif "groupby" in query:groupby_t = query.pop("groupby")config_plus["groupby"] = groupby_telse:err = {"error": 30000, "message": "groupby的值不能为空!"}return errlt = self.service.Bar_group(query,obj_update(self.config, config_plus))for k,v in enumerate(lt):new = list(v.values())lt[k] = newif self.service.error:return {"error": self.service.error}return {"result": { "list": lt }}# 总数def Count(self, ctx):"""总数@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""result = self.service.Count(ctx.query, self.config)if self.service.error:return {"error": self.service.error}return {"result": result}# 分组总计条数def Count_group(self, ctx):"""分组总计条数@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "groupby" in query:groupby_t = query.pop("groupby")config_plus["groupby"] = groupby_telse:err = {"error": 30000, "message": "groupby的值不能为空!"}return errlt = self.service.Count_group(query,obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}return {"result": { "list": lt }}# 合计def Sum(self, ctx):"""合计@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldelse:err = {"error": 30000, "message": "field的值不能为空!"}return errresult = self.service.Sum(query, obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}return {"result": result}# 分组求和def Sum_group(self, ctx):"""分组求和@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldelse:err = {"error": 30000, "message": "field的值不能为空!"}return errif "groupby" in query:groupby_t = query.pop("groupby")config_plus["groupby"] = groupby_telse:err = {"error": 30000, "message": "groupby的值不能为空!"}return errlt = self.service.Sum_group(query,obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}return {"result": { "list": lt }}# 求平均数def Avg(self, ctx):"""求平均数@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldelse:err = {"error": 30000, "message": "field的值不能为空!"}return errresult = self.service.Avg(query, obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}return {"result": result}# 分组平均数def Avg_group(self, ctx):"""分组平均数@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""query = dict(ctx.query)config_plus = {}if "field" in query:field = query.pop("field")config_plus["field"] = fieldelse:err = {"error": 30000, "message": "field的值不能为空!"}return errif "groupby" in query:groupby_t = query.pop("groupby")config_plus["groupby"] = groupby_telse:err = {"error": 30000, "message": "groupby的值不能为空!"}return errlt = self.service.Avg_group(query,obj_update(self.config, config_plus))if self.service.error:return {"error": self.service.error}return {"result": { "list": lt }}# 导入数据def Import_db(self, ctx):"""导入数据@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""body = {"error": {"code": 10000, "message": "未定义表名!"}}return body# 导出数据def Export_db(self, ctx):"""导出数据@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""message = {"id": 1,"jsonrpc": "2.0",}query = ctx.query# 获取表名table = self.config["service"]path = ""if "path" in query:path = query.pop("path")if "name" in query:name = query.pop("name")# 通过服务获得数据service = service_select(table)lst = service.Export_db(query)# 1.创建文件对象f = open(str(path) + str(name) + ".csv","w",newline="",encoding="utf-8")# 2.基于文件对象构建 csv写入对象csv_writer = csv.writer(f)for row in lst:csv_writer.writerow(row)return message# 上传def Upload(self, ctx):"""上传@param {Object} ctx http请求上下文@return {Object} 返回json-rpc格式结果"""file_obj = ctx.request.FILES.get("file", None)if file_obj is None:error = {"code": 10000, "message": "上传的文件(file)不能为空"}return errortry:file_obj = ctx.request.FILES.get("file", None)u = "/static/upload/" + file_obj.namefe = os.getcwd() + uwith open(fe, "wb") as f:for line in file_obj.chunks():f.write(line)f.close()except (Exception):print("上传失败:", Exception)else:return {"result": {"url": u}}# 鉴权def Auth(self, ctx):if len(dict_auth.keys()) == 0:service = service_select("auth")lst = service.Get_list({}, {"page": 0})for o in lst:if "option" in o:o["option"] = ast.literal_eval(o["option"])else:o["option"] = {}path = o["path"]if not dict_auth[path]:dict_auth[path] = {}dict_auth[path][o["user_group"]] = oreturn dict_auth# 添加前def Add_before(self, ctx):# print("添加", ctx)return { "code": 0 }# 添加后def Add_after(self, ctx, result):# print("结果", ctx)return result# 修改前def Set_before(self, ctx):# print("修改前", ctx)return { "code": 0 }#分类推荐def Get_hits_list(self, ctx):return { "code": 0 }# 修改前def Set_after(self, ctx, result):return result# 事件def Events(self, event_name, param, paramB):if event_name == "add_before":return { "code": 0 }elif event_name == "del_before":return { "code": 0 }elif event_name == "set_before":return { "code": 0 }elif event_name == "get_obj_before":return { "code": 0 }elif event_name == "get_list_before":return { "code": 0 }elif event_name == "add_after":return paramBelif event_name == "del_after":return paramBelif event_name == "set_after":return paramBelif event_name == "get_obj_after":return paramBelif event_name == "get_list_after":return paramBelse:return paramB
七、更多学习目录:
1.基于ssm的甘肃旅游系统 |
2.基于SSM的旅游企业财务管理系统 |
3.基于SSM的疫情防疫项目(带爬虫) |
4.基于springboot的人力资源管理系统 |
5.基于SSM的民生置业有限公司信息管理系统 |
6.基于ssm的在线挂号小程序系统 |
7.基于Java(spring boot框架)新冠疫苗预约管理系统 |
8.基于SSM的校园小助手系统 |
9.基于springboot的点餐小程序系统 |
10.基于ssm的健康食谱推荐小程序 |
11.基于ssm的健康食谱小程序 |
12.基于ssm的二手汽车拍卖系统小程序 |
13.基于ssm的二手汽车拍卖系统app |
14.基于springboot的客户关系管理系统 |
15.基于SSM的校园活动管理小程序 |
16.基于SSM的个人健康饮食管理小程序系统 |
17.基于ssm的微信小程序水果商城 |
18.基于微信小程序的一起运动吧活动管理系统 |
19.基于springboot的微信小程序的在线商城系统(根据收藏类别推荐+点击率推荐) |
20.基于SSM新闻网站 |
21.基于ssm的在线租房网站 |
22.基于springboot的中学校园管理微信小程序 |
23.基于Springboot学生在线考试系统 |
24.基于SSM的网上奶茶购买平台 |
25.基于springboot的高校社团管理系统(多用户角色) |
26.基于springboot个性化学习推荐网站 |
27.基于微信小程序的西藏特产在线商城系统 |
28.基于SSM的微信小程序的查寝系统 |
29.基于ssm的微信小程序的口袋故事系统 |
30.基于SSM的小区物业管理系统 |
31.基于SSM的小程序任务调度管理信息系统 |
32.基于SSM的团员信息管理系统 |
33.基于SSM框架的法律学习小程序 |
34.基于springboot的学校监考小程序 |
35.基于SSM的超市财务管理系统 |
36.基于springboot的学生宿舍管理系统 |
37.基于SSM的课程设计管理系统 |
38.基于SSM的课设管理小程序 |
39.基于springboot的果蔬交易与物流微信小程序 |
40.基于ssm的果蔬交易与物流微信小程序 |
41.基于SSM的红色文化展示小程序系统 |
42.基于SSM的小区物业管理系统 |
43.基于javaweb的机械博物馆展品管理系统 |
44.基于springboot的实验室设备管理系统 |
45.基于SSM企业人力资源管理系统 |
46.基于springboot的实验室物资管理小程序 |
47.基于springboot的高校选课系统 |
48.基于SSM小程序蔬菜水果零食销售系统 |
49.基于SSM的园第二课堂小程序 |
50.基于ssm的全球地震数据信息管理系统 |
51.基于ssm的足球联赛管理系统 |
52.基于SSM的小程序的人工智能类竞赛管理系统 |
53.基于SSM的智慧医疗问诊小程序 |
54.基于SSM的微信小程序直播在线教育平台 |
55.基于springboot+爬虫的新闻网站系统 |
56.基于SSM的自驾游小程序 |
57.基于SSM的高校宿舍管理小程序系统 |
58.基于SSM的微信小程序在线学习平台 |
59.基于Android的防疫信息管理系统 |
60.基于springboot的患者术后康复的小程序 |
61.基于ssm微信小程序的校园换物系统 |
62.基于SSM微信小程序的智慧党史系统 |
63.基于SSM的家庭理财系统 |
64.基于SSM的高校学籍信息管理系统 |
65.基于SSM微信小程序的航班查询和订票系统 |
66.基于ssm的医院挂号系统 |
67.基于SSM的在线阅读系统 |
68.基于SSM的疫情社区物资配送系统 |
69.基于ssm的加油服务系统小程序系统 |
70.基于ssm的XX学院校友录小程序系统 |
71.基于ssm的药店管理系统微信小程序系统 |
72.基于ssm的装潢应用系统小程序系统 |
73.基于ssm的学生公寓生活管理系统 |
74.基于ssm的计算机维修服务微信小程序 |
75.基于ssm的微信音乐播放器小程序 |
76.基于ssm的中医药配方小程序 |
77.基于ssm的二手交易微信小程序 |
78.基于ssm的的家教信息小程序管理系统 |
79.基于ssm的鲜花销售小程序系统 |
80.基于ssm的预约挂号小程序系统 |
81.基于ssm的在线考试小程序系统 |
82.基于ssm的慢性疾病管理微信小程序 |
83.基于springboot的在线考试系统小程序 |
84.基于springboot的批发零售业商品管理小程序系统 |
85.基于ssm的图书借阅到期提醒小程序系统 |
86.基于springboot的服装企业人事管理小程序系统 |
87.基于nodejs的电商管理系统 |
88.基于nodejs的知识分享网站 |
89.基于nodejs的宠物医生预约平台 |
90.基于nodejs的外卖平台 |
91.基于nodejs的大学生心理咨询微信小程序 |
92.基于nodejs的房屋租赁管理系统 |
93.基于nodejs的拼车网站 |
94.基于nodejs的博客系统 |
95.基于nodejs的家政服务微信小程序 |
96.基于nodejs的物物交换平台 |
97.基于php的实验室安全系统 |
98.基于php的单招志愿采集系统 |
99.基于php的网上买卖管理系统 |
100.基于php的XX学院兼职小程序系统 |
101.基于php的计算机信息管理学院网站 |
102.基于python+Django图书馆智能推荐系统python3.85版本 |
103.基于Python的个性化电影推荐的算法 |
104.基于python+django图书推荐系统 |
105.基于Python的个性化电影推荐的算法 |
106.基于django的爬虫新闻网站系统 |
107.基于Python的人事档案管理系统 |
108.基于python的汽车销售系统 |
109.基于python的《C语言程序设计》课程案例库研究 |
110.基于python的飞机票销售系统 |
111.基于python的旧衣物捐赠系统 |
112.基于python的超市进销存 |
113.基于python的在线办公系统 |
114.基于python的大学生职业推荐平台 |
115.基于python的个性化服装系统 |
116.基于python的酒店住房管理系统 |
117.基于python的三甲妇幼保健院网站 |
118.基于python的大学生生活信息交互平台 |
119.基于python的学生兼职平台系统 |
120.基于python的主机硬件配置推荐系统 |
121.基于python的本地健康宝微信小程序 |
122.基于python的鲜花销售小程序 |
123.基于JSP的网上订餐管理系统 |
124.基于jAVAWeb停车场管理系统 |
125.基于SSM幼儿园信息管理系统 |
126.基于Springboot电影订票系统 |
127.基于ssm人力资源考勤系统 |
128.基于javaweb作业管理系统 |
129.基于javaweb校园二手物品交易 |
130.基于javaweb的停车场管理系统 |
131.基于javaweb学生选课系统 |
132.基于SSM实现的人力资源管理系统 |
133.基于javaweb项目疫情宿舍管理 |
134.基于SSM的图书商城系统 |
135.基于ssm的微信小程序家教系统 |
136.基于ssm的旅游管理系统travel |
137.基于SSM的微信小程序图书借阅系统 |
138.基于web的微信小程序家政预约系统 |
139.基于web的微信小程序菜谱系统 |
140.基于web的微信小程序服装商城系统 |
141.基于web的微信小程序校园活动管理系统 |
142.基于web的微信小程序记事本系统 |
143.基于ssm的基于微信小程序的农产品销售系统 |
144.基于ssm的微信小程序旅游服务系统 |
145.基于springboot的微信小程序在线考试管理系统 |
146.基于ssm的微信小程序电影院购票系统 |
147.基于ssm的微信小程序房屋交易系统 |
148.基于ssm的微信小程序培训机构管理系统 |
149.基于web的微信小程序电影购票系统 |
150.基于ssm的酒店管理系统 |
151.基于javaweb点餐系统 |
152.基于javaweb宿舍管理系统 |
153.基于springboot的信息化管理系统 |
154.基于SSM的美妆商城系统 |
155.基于javaweb学生成绩管理系 |
156.基于SSM的新闻发布系统 |
157.基于SSM实现的小区物业管理系统 |
158.基于SSH的城市公交查询系统 |
159.基于S2SH的人力资源管理系统 |
160.基于S2SH酒店点餐收款系统 |
161.基于JSP的在线调查问卷系统 |
162.基于JSP的网上订餐管理系统 |
163.基于JSP实现的飞机票售票管理系统 |
164.基于SSM农场信息管理系统 |
165.基于javaweb花店管理系统 |
166.基于javaweb药房库存管理系统 |
167.基于SSM的甜品店系统 |
168.基于S2SH的药膳馆会员管理系统 |
169.基于javaweb的学籍管理系统 |
170.基于web的网上书城系统 |
171.基于web的学生成绩系统 |
172.基于SSH的客运站网上售票系统 |
173.基于S2SH校园论坛系统 |
174.基于javaweb旅游管理系统 |
175.基于SSH的旅游管理系统 |
176.基于SSM垃圾分类管理系统 |
177.基于ssm宠物销售系统 |
178.基于javaweb的在线人才招聘系统 |
179.基于S2SH小区物业系统 |
180.基于ssm人事管理系统 |
181.基于web的淘淘商城系统 |
八、互动留言
【Django毕业设计源码】python在线办公系统相关推荐
- Python在线办公系统毕业设计源码071116
Python在线办公系统 摘 要 一个企业实现办公自动化的程度是衡量其实现现代化管理的标准.办公自动化就是采用Internet技术,基于工作流的概念,使企业内部人员方便快捷地共享信息,高效协同工作. ...
- javaweb JAVA JSP论坛系统源码BBS在线论坛系统源码(电影论坛)
javaweb JAVA JSP论坛系统源码BBS在线论坛系统源码(电影论坛) 常见的Javaweb题材有 理财系统,就业管理系统,汽车租赁,简易网盘,疫情数据查看,在线招标房,屋租赁,教务管理,医院 ...
- 亲测源码分享|顶级OA办公系统源码 OA协同办公系统,包含CRM客户管理系统+内部聊天工具+手机自适应
前言: 今日分享的是.,顶级OA办公系统源码 OA协同办公系统,包含CRM客户管理系统+内部聊天工具+手机自适应,我这边已经测试过了,已经搭建出来了,并且录制了测试和搭建视频,视频这里我已经上传网盘了 ...
- 【Django毕业设计源码】Python考试题库练习系统
目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...
- 【Django毕业设计源码】Python旧衣物捐赠系统的设计与实现
目录 一.程序介绍: 三.文档目录: 四.运行截图: 五.数据库表: 六.代码展示: 七.更多学习目录: 八.互动留言 一.程序介绍: 文档:开发技术文档.参考LW.答辩PPT,部分项目另有其他文档 ...
- java毕业设计——基于java+J2EE+sqlserver的在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统
基于java+J2EE+sqlserver的在线考试系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+J2EE+sqlserver的在线考试系统设计与实现,文章末尾附有本毕业设 ...
- asp毕业设计——基于asp+access的在线教育系统设计与实现(毕业论文+程序源码)——在线教育系统
基于asp+access的在线教育系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的在线教育系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. 文章目录 ...
- asp毕业设计——基于asp+access的网络办公系统设计与实现(毕业论文+程序源码)——网络办公系统
基于asp+access的网络办公系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的网络办公系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开 ...
- java毕业设计——基于JSP+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码)——在线考试系统
基于JSP+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于JSP+sqlserver的网络在线考试系统设计与实现,文章末尾附有本毕业设计的论文和源码下 ...
最新文章
- vue --- mintUI中Swipe(轮播图)的使用
- 从源码说说dispatchTouchEvent与onTouchEvent的关系以及OnTouchListener的用法
- android 全局hook_【Hook】实现无清单启动Activity
- lcfirst_PHP lcfirst()函数与示例
- 关于JSP与Int不得不说的故事
- Java的jdk1.6与jre1.8中存在的差异
- 上海卓道医疗完成千万级Pre-A轮融资,幂方资本领投...
- VisualStudio 2010从分析到实施(3)——使用Use Case Diagram设计系统交互
- windows搭建SVN服务器
- java运行matlab代码
- java基本类型运算溢出_JAVACard 基本数据类型的运算及溢出问题
- 万网空间PHP 伪静态化,disuczx版块URL伪静态目录化设置方法
- c语言怎么移位,C语言中的移位操作
- web3py earliest、latest、pending
- 支付宝APP支付集成文档
- 【深度】分化人类行为和认知能力的6个评估函数
- 开放朋友圈,关联视频号,Linkflow让企业微信这波更新如虎添翼
- Spark-Spark Streaming(4)-- 部署、监控
- mes都支持opc服务器吗,OPC UA 和MES是什么关系
- vue屏幕长宽自适应
热门文章
- 小说作者推荐:徐徐图之合集
- 新近发现推荐一个PHP的ORAM开源框架phpdoctrine
- 【转】我的助理辞职了!—给不听话的下属看看
- XENIRO 讯琥科技应用案例(八)| 基于边缘计算和区块链的跨境漫游结算
- “笨办法”学Python3,Zed A. Shaw,习题21
- nvm use 时出现145乱码 ,解决方案如下
- 卡牌游戏源代码(原创)(控制台)
- “信息化服务包”,中小企业信息化的六件套
- @Value的用法及(#{})与@Value(${})的区别
- AD5541输出控制