基于Python+Django+Vue+MYSQL的社团管理系统

news2024/10/7 12:22:44

项目介绍

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

随着我国国民经济的发展,教育水平也在不断地发展,大学生的数量每年也在不断的递增,如此多的大学生在学校肯定是要参加一些社团然后丰富自己业余生活的同时也不断的积攒社会经验和精神水平,我通过研究长期的研究和分析一些现有的网站结合自己的学校,本校建立了这个社团网站,旨在提高大学生的精神生活和在即将毕业之际给母校大学做点小小的贡献。系统采用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__=None

        if __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
        #forrEndListAuth
        try:
            __foreEndListAuth__=news.__foreEndListAuth__
        except:
            __foreEndListAuth__=None


        #authSeparate
        try:
            __authSeparate__=news.__authSeparate__
        except:
            __authSeparate__=None

        if __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__ = 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__ == "是":
                if req_dict.get("userid"):
                    del req_dict["userid"]
            else:
                #非管理员权限的表,判断当前表字段名是否有userid
                if "userid" in columns:
                    try:
                        # 本接口可以匿名访问,所以try判断是否为匿名
                        req_dict['userid']=request.session.get("params").get("id")
                    except:
                            pass
        #当列属性authTable有值(某个用户表)[该列的列名必须和该用户表的登陆字段名一致],则对应的表有个隐藏属性authTable为”是”,那么该用户查看该表信息时,只能查看自己的
        try:
            __authTables__=news.__authTables__
        except:
            __authTables__=None

        if __authTables__!=None and  __authTables__!={} and __foreEndListAuth__=="是":
            try:
                del req_dict['userid']
            except:
                pass
            for authColumn,authTable in __authTables__.items():
                if authTable==tablename:
                    params = request.session.get("params")
                    req_dict[authColumn]=params.get(authColumn)
                    break
        
        if news.__tablename__[:7]=="discuss":
            try:
                del req_dict['userid']
            except:
                pass
        msg['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__ = 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

        #获取全部列名
        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_code
            msg['msg'] = error
        return 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__=None

        if __authSeparate__=="是":
            tablename=request.session.get("tablename")
            if tablename!="users" and 'userid' in columns:
                try:
                    req_dict['userid']=request.session.get("params").get("id")
                except:
                    pass

        try:
            __foreEndListAuth__=news.__foreEndListAuth__
        except:
            __foreEndListAuth__=None

        if __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_code
            msg['msg'] = error
        return JsonResponse(msg)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虹科分享 | 盘点世界杯有趣小知识!带你感受体育赛事可视化的快乐!

卡塔尔世界杯 2022年卡塔尔世界杯是第二十二届世界杯足球赛,是历史上首次在卡塔尔和中东国家境内举行、也是第二次在亚洲举行的世界杯足球赛。 今年卡塔尔世界杯可谓精彩纷呈,花2000个亿在沙漠里打造出的空调球场、洗脑又魔性的“母鸡生蛋”主题曲《Tu…

【Linux】进程创建、退出和等待(fork、exit和_exit、waitpid和wait、阻塞和非阻塞)

文章目录1、进程创建1.1 理解fork函数1.2 fork函数的细节2、进程退出2.1 退出码2.2 exit函数和_exit系统调用3、进程等待3.1 wait和waitpid3.2 阻塞和非阻塞1、进程创建 进程的创建主要依靠系统接口fork函数。 fork函数从已存在的一个进程中,创建一个子进程&#…

刚接触测试如何编写测试用例?看看摸鱼5年的老点工是怎么写的

给你个需求,你要怎么转变成最终的用例? 直接把需求文档翻译一下就完事了。 老点工拿到需求后的标准操作: 第一步:解析需求 先解析需求-找出所有需求中的动词,再列出所有测试点。测试点过程不断发散,对于…

第十四章: ReentrantLock、ReentrantReadWriteLock、StampedLock

相关面试题锁的演变ReentrantReadWriteLock锁降级案例演示一案例演示二总结为什么要有锁降级邮戳锁 StampedLock邮戳锁的特点案例演示一案例演示二StampedLock 缺点相关面试题 你说你用过读写锁,锁饥饿问题是什么?有没有比读写锁更快的锁?St…

域名解析函数 gethostbyname

在实现TCP/UDP编程的时候,服务端绑定的IP地址是点分十进制的,如124.222.215.205,如果提供的是域名,此时我们需要将域名转换成点分十进制的IP地址,这个过程就是 “ 域名解析 ”,实现域名转换的函数就是 geth…

Python Aws Ubuntu20 配置多IP

1. 业务场景: 高频次交易需要多次访问接口,配置单服务器多IP绕过币安单个IP频率限制 2. AWS实例选择: t3系列,东京A区,ubuntu20 这是我测试的币安延迟最低的配置(平均6ms) 换一个区域、一个系…

【王道计算机网络笔记】数据链路层-数据链路层设备

文章目录物理层扩展以太网链路层扩展以太网网桥透明网桥源路由网桥以太网交换机直通式交换机存储转发式交换机冲突域和广播域物理层扩展以太网 主机和集线器不能超过100m,超过100m会失真严重,无法恢复,扩展以太网的方法: 通过光纤…

欢迎报名Rust China Hackathon 2022 达坦科技组

12月4日下午,DatenLord就2022Rust China Hackathon大赛活动企业组(达坦科技组)的赛题进行了空中宣讲会。不仅对赛事流程进行了全面的讲解,同时对赛题背景以及完赛标准和要点进行了深入的剖析。会后更是设置问答环节,细…

目标检测算法——图像分割数据集汇总(附下载链接)

>>>深度学习Tricks&#xff0c;第一时间送达<<< &#x1f384;&#x1f384;近期&#xff0c;小海带在空闲之余&#xff0c;收集整理了一批图像分割数据集供大家参考。 整理不易&#xff0c;小伙伴们记得一键三连喔&#xff01;&#xff01;&#xff01;&am…

给visCode编辑器添加背景图

看见很多大牛的visCode编辑器上有个背景图&#xff0c;感觉挺有逼格的&#xff0c;要想跟大牛一样有逼格&#xff0c;那先把编辑器设置的跟大牛的逼格一样高 话不多说&#xff0c;开始 第一步&#xff1a;先安装背景扩展 第二步&#xff1a;点击选择扩展设置 第三步&#xff1…

原码、反码、补码的互相转换

原码、反码、补码的互相转换 简介&#xff1a;本文是为了计算机组成原理复习&#xff0c;本文以具体题目的方式来对原码、反码、补码的互相转换进行讲解。 概述 原码 &#xff1a;最高位是符号位&#xff0c;0代表正数&#xff0c;1代表负数&#xff0c;非符号位为该数字绝对…

实战web漏洞挖掘小技巧

几个月前看到国外的bug bounty tips在传Host攻击技巧&#xff0c;前阵子又看到国内有不少文章总结&#xff0c;冷渗透就不再复述了&#xff0c;直接介绍实际业务场景中碰到的案例。 0x01 自定义Host—窃取Token 1. 找到重置密码处&#xff0c;填写任意一个受害者邮箱帐号&#…

记录--微信小程序获取用户信息(附代码、流程图)

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 本篇文章主要总结了微信小程序开发&#xff0c;获取用户信息的整个流程步骤。补充了网上很多碎片化的代码&#xff0c;本人梳理了思路写下了这篇文章。 思路 1、在js文件中&#xff0c;设置userinfo、…

华丰科技将于12月13日上会:业绩波动明显,海通证券等为股东

近日&#xff0c;四川华丰科技股份有限公司&#xff08;下称“华丰科技”&#xff09;在上海证券交易所科创板递交招股书&#xff08;上会稿&#xff09;。据贝多财经了解&#xff0c;华丰科技将于2022年12月13日上会&#xff0c;接受科创板上市委的现场审议。 根据公开信息&am…

【嵌入式硬件芯片开发笔记】LP87702/LP87524电源芯片配置流程

【嵌入式硬件芯片开发笔记】LP87702/LP87524电源芯片配置流程 LP8752x-Q1 10-A Buck Converter With Integrated Switche 具有诊断功能的 LP87702-Q1 双路降压转换器和 5V 升压转换器 LP87702/LP87524从机地址都是0x60 LP87702/LP87524中的设备ID等寄存器&#xff0c;是根据OT…

维护4年的组件化框架 Component 升级到 KComponent 啦

前言 KComponent 它来啦. 从 2018.8 开始, Component 项目正式开源. 到目前已经 4 年的时间了. 这几年中, Component 不断升级优化. 最后趋于稳定. 为了组件化框架更好的发展, KComponent 继承了 Component 的优点, 升级为一个纯 Kotlin 的项目. 不再支持 Java, 注解驱动器也…

Java招生报名咨询系统毕业设计,Java招生咨询问答系统设计与实现,毕业设计论文怎么写毕设源码开题报告需求分析怎么做

功能清单 【系统管理员功能】 关于我们设置&#xff1a;设置学校简介、联系我们、加入我们、法律声明、学校详情 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信…

20.前端笔记CSS-精灵图

1、为啥要精灵图 一个网页中往往会应用很多小的背景图像作为修饰&#xff0c;当网页中的图像过多时&#xff0c;服务器就会频繁的接收和发生请求图片&#xff0c;造成服务器的请求压力过大&#xff0c;这会大大降低页面的加载速度 为了有效减少服务器接收和发生请求的次数&…

[附源码]JAVA毕业设计图书借阅系统演示录像(系统+LW)

[附源码]JAVA毕业设计图书借阅系统演示录像&#xff08;系统LW&#xff09; 项目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

你不知道的goland技巧

很多人使用 Goland 有很长时间的&#xff0c;却没有好好利用上 Goland 工具带给我们的遍历&#xff0c;今天咱们就来解锁一下新技巧 过去我们使用 Goland 就是简单的配置一下 go 的 proxy &#xff0c;以及配置一下 ssh &#xff0c;与服务器进行文件的上传和下载&#xff0c;其…