基于Python+Django+Vue+MYSQL的社团管理系统
创始人
2024-03-27 22:04:25
0次

项目介绍

随着近年来大学教育的改革,大部分高校普遍开始实行学分制、弹性学制改革,这样学校在学生的学习和生活中所起的作用慢慢减小,不再是一种直接由学校决定学生的大学生活。学生对自己的学习和生活有了更大的自主权,在课余也有了更多可支配的时间和发挥的空间。这样学生就需要一些自治性的组织来实现对自我的管理,也需要一些兴趣性的社团来发挥自己的特长、发展自己的兴趣,实现大学里应有的素质提升。学生是学生社团发展的主体,有了学生的需求,高校学生社团的兴起就有了最根本的动力。看到了高校学生社团的兴起和蓬勃发展,自然让人倍感欣喜,但是传统的社团管理模式比较落后,为了提升社团的管理水平继续一套现代化的管理方式。

随着我国国民经济的发展,教育水平也在不断地发展,大学生的数量每年也在不断的递增,如此多的大学生在学校肯定是要参加一些社团然后丰富自己业余生活的同时也不断的积攒社会经验和精神水平,我通过研究长期的研究和分析一些现有的网站结合自己的学校,本校建立了这个社团网站,旨在提高大学生的精神生活和在即将毕业之际给母校大学做点小小的贡献。系统采用Python编程语言,Django框架,前端Vue技术,MySQL为后台数据库。

本系统主要有社团成员,社团团长和管理人员三个角色。
社团成员可以查看。新闻公告招新信息,并可在招新信息中申请加入喜欢的社团。可以在社团活动中申请自己想要参加的社团活动。
社团团长可以对自己所负责的社团内容进行管理。
管理人员可以对整个系统进行管理,同时还负责对社团团长的任命等功能

开发环境

开发语言:Python
数据库 :MySQL
系统架构:B/S
后端框架:Django
前端框架:Vue
开发工具:Pycharm
支持定做:Java/PHP/Python/Android/小程序/Vue/爬虫/C#/Asp.net

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

def news_list(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")#获取全部列名columns=  news.getallcolumn( news, news)#表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看try:__foreEndList__=news.__foreEndList__except:__foreEndList__=Noneif __foreEndList__=="前要登":tablename=request.session.get("tablename")if tablename!="users" and 'userid' in columns:try:req_dict['userid']=request.session.get("params").get("id")except:pass#forrEndListAuthtry:__foreEndListAuth__=news.__foreEndListAuth__except:__foreEndListAuth__=None#authSeparatetry:__authSeparate__=news.__authSeparate__except:__authSeparate__=Noneif __foreEndListAuth__ =="是" and __authSeparate__=="是":tablename=request.session.get("tablename")if tablename!="users":req_dict['userid']=request.session.get("params",{"id":0}).get("id")tablename = request.session.get("tablename")if tablename == "users" and req_dict.get("userid") != None:#判断是否存在userid列名del req_dict["userid"]else:__isAdmin__ = NoneallModels = apps.get_app_config('main').get_models()for m in allModels:if m.__tablename__==tablename:try:__isAdmin__ = m.__isAdmin__except:__isAdmin__ = Nonebreakif __isAdmin__ == "是":if req_dict.get("userid"):del req_dict["userid"]else:#非管理员权限的表,判断当前表字段名是否有useridif "userid" in columns:try:# 本接口可以匿名访问,所以try判断是否为匿名req_dict['userid']=request.session.get("params").get("id")except:pass#当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的try:__authTables__=news.__authTables__except:__authTables__=Noneif __authTables__!=None and  __authTables__!={} and __foreEndListAuth__=="是":try:del req_dict['userid']except:passfor authColumn,authTable in __authTables__.items():if authTable==tablename:params = request.session.get("params")req_dict[authColumn]=params.get(authColumn)breakif news.__tablename__[:7]=="discuss":try:del req_dict['userid']except:passmsg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \msg['data']['pageSize']  = news.page(news, news, req_dict)return JsonResponse(msg)def news_save(request):'''后台新增'''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}req_dict = request.session.get("req_dict")tablename=request.session.get("tablename")__isAdmin__ = NoneallModels = apps.get_app_config('main').get_models()for m in allModels:if m.__tablename__==tablename:try:__isAdmin__ = m.__isAdmin__except:__isAdmin__ = Nonebreak#获取全部列名columns=  news.getallcolumn( news, news)if tablename!='users' and req_dict.get("userid")!=None and 'userid' in columns  and __isAdmin__!='是':params=request.session.get("params")req_dict['userid']=params.get('id')error= news.createbyreq(news,news, req_dict)if error!=None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def news_add(request):'''前台新增'''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}req_dict = request.session.get("req_dict")#获取全部列名columns=  news.getallcolumn( news, news)try:__authSeparate__=news.__authSeparate__except:__authSeparate__=Noneif __authSeparate__=="是":tablename=request.session.get("tablename")if tablename!="users" and 'userid' in columns:try:req_dict['userid']=request.session.get("params").get("id")except:passtry:__foreEndListAuth__=news.__foreEndListAuth__except:__foreEndListAuth__=Noneif __foreEndListAuth__ and __foreEndListAuth__!="否":tablename=request.session.get("tablename")if tablename!="users":req_dict['userid']=request.session.get("params").get("id")error= news.createbyreq(news,news, req_dict)if error!=None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...