基于Python+Django+Vue+MYSQL的个人博客网站系统_diango4+vue3开发个人博客-程序员宅基地

技术标签: python  Python项目  django  vue  mysql  

项目介绍

随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多网站的之中,随之就产生了“校园博客系统”,这样就让校园博客系统更加方便简单。

对于本校园博客系统的设计来说,系统开发主要是采用python语言技术,前端采用vue技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据校园博客系统的现状来进行开发的,具体根据现实的需求来实现校园博客系统网络化的管理,各类信息有序地进行存储,进入校园博客系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、博主管理、文章分类管理、文章信息管理、举报投诉管理、系统管理,博主;首页、个人中心、文章信息管理、举报投诉管理、我的收藏管理,前台首页;首页、文章信息、系统公告、个人中心、后台管理、在线客服等功能。

开发环境

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

系统截图

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

部分代码

def yonghu_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=  yonghu.getallcolumn( yonghu, yonghu)
        #表属性[foreEndList]前台list:和后台默认的list列表页相似,只是摆在前台,否:指没有此页,是:表示有此页(不需要登陆即可查看),前要登:表示有此页且需要登陆后才能查看
        try:
            __foreEndList__=yonghu.__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__=yonghu.__foreEndListAuth__
        except:
            __foreEndListAuth__=None


        #authSeparate
        try:
            __authSeparate__=yonghu.__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__=yonghu.__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 yonghu.__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']  = yonghu.page(yonghu, yonghu, req_dict)

        return JsonResponse(msg)

def yonghu_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=  yonghu.getallcolumn( yonghu, yonghu)
        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= yonghu.createbyreq(yonghu,yonghu, req_dict)
        if error!=None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def yonghu_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=  yonghu.getallcolumn( yonghu, yonghu)

        try:
            __authSeparate__=yonghu.__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__=yonghu.__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= yonghu.createbyreq(yonghu,yonghu, req_dict)
        if error!=None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_3306428634/article/details/128245026

智能推荐

springboot+Shiro快速入门:简洁版(快速搭建示例)_springboot+shiro快速入门:简洁版(快速搭建示例)-程序员宅基地

文章浏览阅读311次,点赞2次,收藏2次。springboot整合shiro快速入门简洁版_springboot+shiro快速入门:简洁版(快速搭建示例)

21 款 yyds 的 IDEA插件-程序员宅基地

文章浏览阅读347次。点击上方“朱小厮的博客”,选择“设为星标”后台回复"书",获取后台回复“k8s”,可领取k8s资料最近,闲来无事,为了改变一下枯燥的编程环境,特地搜寻了下有助提升代码功力的..._activate mybatis log

使用Jenkins Pipeline插件和Docker打造容器化构建环境-程序员宅基地

文章浏览阅读7k次。Docker和Jenkins像DevOps界的巧克力和花生酱那样,它们的组合产生了无数的机会,当然也产生了很多难题,笔者将提及这两个方面。本文中,我假定读者已经熟悉Jenkins和Docker,我将把焦点放在特定的配置上而不是把笔墨花费在许多博文已经介绍过的入门概念上。设定目标我所要达成的目标其实非常简单:在一个容器中搭建Jenkins主节点,并且在多个主机上搭建多个JNLP代理容器。这些代理节点..._jenkins 插件containernode.inside

青少年软件编程(202209)(C语言)(树&堆&图)等级考试(七级)试题及参考答案_青少年 c语言编程 题目-程序员宅基地

文章浏览阅读359次。给定一棵二叉树,求该二叉树的深度二叉树深度定义:从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的节点个数为树的深度时间限制:1000内存限制:65535输入第一行是一个整数n,表示二叉树的结点个数。二叉树结点编号从1到n,根结点为1,n _青少年 c语言编程 题目

unity3d与android交互:aar导出给unity:闪退,Theme.AppCompat.Light,appcompat-v7问题_unity3d 启动aar包的android activity不能显示-程序员宅基地

文章浏览阅读594次。unity接sdk,打包报错 No resource found that matches the given name ‘Theme.AppCompat.Light’.这是因为sdk中用了这个主题,冒然的删除,会导致后面出来的功能有问题使用appcompat-v7-23.0.0.aar解决,这个里面包含了资源,单纯的jar包不行appcompat-v7-23.0.0.aar可以通过androidsdk文件中SDKManager下载Unity接sdk,运行中报错java.lang.NoClassD_unity3d 启动aar包的android activity不能显示

DenseCLIP: Language-Guided Dense Prediction with Context-Aware Prompting(CVPR2022 )_denseclip代码解读-程序员宅基地

文章浏览阅读891次,点赞23次,收藏26次。最近的进展表明,使用对比图像-文本对的大规模预训练可以从自然语言监督中学习高质量的视觉表示。得益于更广泛的监督来源,这种新范式表现出令人印象深刻的下游分类任务和数据集的可转移性。然而,将从图像-文本对中学到的知识转移到更复杂的密集预测任务的问题却很少被研究。在这项工作中,我们通过隐式和显式地利用来自CLIP的预训练知识,提出了一个新的密集预测框架。具体来说,我们将CLIP中的原始图像-文本匹配问题转换为像素-文本匹配问题,并使用像素-文本得分映射来指导密集预测模型的学习。_denseclip代码解读

随便推点

微软教育账户注册_微软学校账户-程序员宅基地

文章浏览阅读9.3k次。1. 进入微软教育账户注册页面微软教育账户注册页面: https://signup.microsoft.com/signup?sku=Education输入你的教育邮箱注: 具有相同的 邮件服务器名称 的教育邮箱属于同一组织, 才能够加入同一 SharePoint 组中2. 选择自己的身份3. 完善个人信息注1: 验证码将发送至之前输入的教育邮箱中注2: 教育邮箱若5分钟内未收到含有验证码的邮件, 则推荐重新发送4. 注册成功若跳转至以下页面则说明教育账户注册成功._微软学校账户

smarty --foreach详解_smarty nbsp-程序员宅基地

文章浏览阅读248次。Attribute Name属性名称Type类型Required必要Default默认值Description描述fromarray数组Yes必要n/aThe array you are looping through循环访问的数组itemstring字符串Yes必要n/aThe name of the variable tha_smarty nbsp

基于MVC设计模式的WEB应用框架研究~~转_基于mvc设计模型的框架-程序员宅基地

文章浏览阅读709次。MVC设计模式是基于J2EE的WEB应用开发的首选模式,当前许多流行的框架也都是基于MVC设计模式的。本文简要介绍了MVC设计模式和Struts框架,并提出了一种基于MVC模式的新型WEB应用开发框架——WebFramework,并对该框架的各个层次的组成、功能进行了详细的描述。  关键词 MVC设计模式; J2EE;框架; Struts  引言  随着开源软件的兴起,各种框架也纷纷出现,如Apa_基于mvc设计模型的框架

蓝桥杯丨回溯法_python回溯算法实现数独游戏-程序员宅基地

文章浏览阅读1.3k次。一些关于回溯法的笔记。_python回溯算法实现数独游戏

Image_Picker: “PlatformException(already_active, Image picker is already active,null)“-程序员宅基地

文章浏览阅读2k次。flutter使用imgae_picker插件时报错:"PlatformException(already_active, Image picker is already active,null),翻看了很多帖子,大部分建议都是升级插件版本或者运行flutter clean可以解决。但是我一直不可以。直到看到这样一条消息(具体地址如下):https://github.com/flutter/flutter/issues/53216文中截图:译文:嘿伙计们.._platformexception(already_active, image picker is already active, null, null

微信存储空间占用问题_小米我的设备查微信占用内存与微信app查的占用内存不一样-程序员宅基地

文章浏览阅读796次。微信文件存储优化_小米我的设备查微信占用内存与微信app查的占用内存不一样