1967python多媒体素材管理系统mysql数据库Django结构layUI布局计算机软件工程网页

一、源码特点
    python Django多媒体素材管理系统是一套完善的web设计系统mysql数据库 ,对理解python编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
    开发环境pycharm
    mysql 5.0 到5.5
    依赖包 Django 2.2.16

pythonDjango多媒体素材管理系统1

二、功能介绍
(1)用户管理:对用户信息进行添加、删除、修改和查看
(2)媒体分类管理:对媒体分类信息进行添加、删除、修改和查看
(3)标签管理:对标签信息进行添加、删除、修改和查看
(4)媒体管理:对媒体信息进行添加、删除、修改和查看 浏览  下载
(5)评价管理:对评价信息进行添加、删除、修改和查看
(10)系统登录、个人信息修改

view层设计


#登录首页
def login(request):
    if request.method == 'GET':
            return render(request, "login.html")
    if request.method == 'POST':
        yhm = request.POST.get('yhm')  # 用户名
        mm = request.POST.get('mm')  # 密码
        res = models.yonghu.objects.filter(yhm=yhm, mm=mm).count()
        if res == 0:
               messages.success(request, "操作失败、用户名和密码不匹配")
               return redirect('/login')
        elif res > 0:
             obj = models.yonghu.objects.filter(yhm=yhm, mm=mm).first()
             request.session['id'] = obj.id
             request.session['yhm'] = yhm
             request.session['mm'] = mm
             request.session['qx'] = obj.qx

             return redirect('/main')

#注册用户
def reg(request):
    if request.method == 'GET':
        return render(request, "reg.html")
    if request.method == 'POST':
        yhm = request.POST.get('yhm')  # 用户名
        mm = request.POST.get('mm')  # 密码
        xm = request.POST.get('xm')  # 姓名
        qx = "用户"  # 权限
        lxdh = request.POST.get('lxdh')  # 联系电话
        lxdz = request.POST.get('lxdz')  # 联系地址

        res = models.yonghu.objects.filter(yhm=yhm).count();
        if res > 0:
            messages.success(request, "注册失败、用户名重复")
        elif res == 0:
            messages.success(request, "注册成功")
            models.yonghu.objects.create(yhm=yhm, mm=mm, xm=xm, qx=qx, lxdh=lxdh, lxdz=lxdz, )
        # return render(request, "yonghu/yonghuadd.html")
        return redirect('/reg')

# 添加用户
def yonghuadd(request):
    if request.method == 'GET':
        return render(request, "yonghu/yonghuadd.html")
    if request.method == 'POST':
        yhm = request.POST.get('yhm')  # 用户名
        mm = request.POST.get('mm')  # 密码
        xm = request.POST.get('xm')  # 姓名
        qx = request.POST.get('qx')  # 权限
        lxdh = request.POST.get('lxdh')  # 联系电话
        lxdz = request.POST.get('lxdz')  # 联系地址

        res = models.yonghu.objects.filter(yhm=yhm).count();
        if res > 0:
            messages.success(request, "操作失败、用户名重复")
        elif res == 0:
            messages.success(request, "操作成功")
            models.yonghu.objects.create(yhm=yhm, mm=mm, xm=xm, qx=qx, lxdh=lxdh, lxdz=lxdz, )
        # return render(request, "yonghu/yonghuadd.html")
        return redirect('/yonghu/yonghuadd')


# 用户列表
def yonghulist(request):
    print(request.method)
    global list
    if request.method == 'GET':

        yhm = request.GET.get('yhm')  # 用户名
        if not yhm:
            yhm = ""
        print(yhm)
        list = models.yonghu.objects.filter(yhm__icontains=yhm).all()  # 获取yonghu表所有的数据
    return render(request, "yonghu/yonghulist.html", {'list': list})

model层设计



# 用户表
class yonghu(models.Model):

    yhm = models.CharField(max_length=40)  # 用户名
    mm = models.CharField(max_length=40)  # 密码
    xm = models.CharField(max_length=40)  # 姓名
    qx = models.CharField(max_length=40)  # 权限
    lxdh = models.CharField(max_length=40)  # 联系电话
    lxdz = models.CharField(max_length=40)  # 联系地址


# 媒体分类表
class mtfl(models.Model):

    fl = models.CharField(max_length=40)  # 分类


# 标签表
class biaoqian(models.Model):

    bq = models.CharField(max_length=40)  # 标签


# 媒体表
class meiti(models.Model):

    mtmc = models.CharField(max_length=40)  # 媒体名称
    lx = models.CharField(max_length=40)  # 类型
    fl = models.CharField(max_length=40)  # 分类
    bq = models.CharField(max_length=40)  # 标签
    sm = models.CharField(max_length=4000)  # 说明
    scsj = models.CharField(max_length=40)  # 上传时间
    fj = models.CharField(max_length=40)  # 附件


# 评价表
class pingjia(models.Model):

    mt = models.CharField(max_length=40)  # 媒体
    pj = models.CharField(max_length=4000)  # 评价
    df = models.CharField(max_length=40)  # 打分
    yh = models.CharField(max_length=40)  # 用户
    pjsj = models.CharField(max_length=40)  # 评价时间

展现层设计

 <div class="layui-row">
        <div class="layui-card">
            <div class="layui-card-header">添加媒体</div>
            <form class="layui-form layui-card-body" name="form" action="" method="post">
                {% csrf_token %}
                <div class="layui-form-item">
                    <label class="layui-form-label">媒体名称</label>
                    <div class="layui-input-block">
                        <input type="text" name="mtmc" required lay-verify="required" placeholder="请输入媒体名称"
                               autocomplete="off" class="layui-input" value="">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">类型</label>
                    <div class="layui-input-block">

                             <select name="lx">

                        <option value="图片">图片</option>
                                 <option value="音频">音频</option>
                                    <option value="视频">视频</option>
                        </select>

                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">分类</label>
                    <div class="layui-input-block">

                             <select name="fl">
                       {% for value in fllist %}
                        <option value="{{ value.fl}}">{{ value.fl}}</option>
                          {% endfor %}
                        </select>

                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">标签</label>
                    <div class="layui-input-block">

                             <select name="bq">
                       {% for value in bqlist %}
                        <option value="{{ value.bq}}">{{ value.bq}}</option>
                          {% endfor %}
                        </select>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">说明</label>
                    <div class="layui-input-block">

                        <textarea  name="sm" required lay-verify="required" placeholder="请输入说明"  class="layui-textarea" cols="80" rows="5"></textarea>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">上传时间</label>
                    <div class="layui-input-block">
                        <input type="text" name="scsj" required lay-verify="required" placeholder="请输入上传时间"
                               autocomplete="off" class="layui-input" value="{{ scsj }}" readonly>
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">附件</label>
                    <div  class="layui-input-inline" style="width: 100px;">
                    <input type="text" name="fj" required lay-verify="required" placeholder="请输入附件"
                               autocomplete="off" style="width: 100px;" class="layui-input" value="">
                    </div>
                                        <div class="layui-input-inline" style="width: 100px;">

                         <button class="layui-btn layui-btn-red" type="button" onclick="funpic()">上传</button>

                    </div>
                </div>


                <div class="layui-form-item">
                    <div class="layui-input-block">
                        <button class="layui-btn layui-btn-blue" lay-submit lay-filter="formDemo">提交</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                </div>
                {% if messages %}
                    <script>
                        {% for msg in messages %}
                            alert('{{ msg.message }}');
                        {% endfor %}
                    </script>
                {% endif %}
            </form>
        </div>


三、注意事项
    1、管理员账号:admin密码:admin 数据库配置文件jxc/settings.py  更改数据库配置
    2、开发环境pycharm,数据库为mysql5.0~5.5,使用python语言开发。
    3、数据库文件名是pythondmt.sql ,系统名称pythondmt
    4、系统首页地址:http://127.0.0.1:8080/login

四 系统实现

需要源码 其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

postman调用Grpc

环境&#xff1a; .net6.0 一、准备 安装nuget&#xff1a; Grpc.AspNetCore Google.Protobuf Grpc.Core.Api Grpc.Tools Grpc.AspNetCore.Server.Reflection Program.cs&#xff1a; public class Program{public static void Main(string[] args){var builder WebApplicat…

【Matlab函数分析】绘图函数:colormap查看并设置当前颜色图

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

【PB案例学习笔记】-10 进度条使用

写在前面 这是PB案例学习笔记系列文章的第10篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

2.5D的架构图相比3D有五大不可替代优势

2.5D架构图是一种介于2D和3D之间的图形表现形式&#xff0c;具有以下几个优势&#xff1a; 省时省力&#xff1a;相比于完全的3D架构图&#xff0c;2.5D架构图的制作相对简单&#xff0c;可以节省制作时间和人力成本。它只需要在平面上进行设计和绘制&#xff0c;不需要考虑3D…

域提权漏洞系列分析-Zerologon漏洞分析2

漏洞点⼆&#xff1a;错误设置CFB8模式 建⽴安全通道时&#xff0c;需要使⽤ComputeNetlogonCredential函数对客户端的Netlogon凭据输⼊client challenge和服 务器的Netlogon凭据输⼊server challenge (SC&#xff09;进⾏加密&#xff0c;ComputeNetlogonCredential函数⽀持使…

飞控如何和接收机接线?

飞控如何和接收机接线&#xff1f; 一般遥控都是按照顺序1对1接到飞控的INPUT端口。特别注意&#xff0c;华科尔的接收机&#xff0c;需要把1和2通道条换过来。 具体方法如下&#xff1a; 下面以MC6遥控接收机为例子&#xff1a; 用下面的图的接收机连接线来演示&#xff1a…

【C++】开源:RabbitMQ安装与配置使用(SimpleAmqpClient)

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&#x1…

隆道专属商城 | 助力企业跨平台整合优势资源,解决采购寻源比价难题!

数字化采购时代&#xff0c;企业面临着日益激烈的市场竞争&#xff0c;如何优化资源配置、降低采购成本、提高采购效率成为企业追求的核心目标。当前&#xff0c;网上商城凭借其强大的供应链资源整合能力&#xff0c;为企业内部采购商城的搭建提供了独特的优势&#xff0c;已然…

常见SSL证书品牌关系图

常见SSL证书品牌关系图 在SSL证书市场上&#xff0c;有几个主要的品牌和他们之间的复杂关系。以下是一些主要的SSL证书提供商及其关系的简要概述&#xff1a; DigiCert&#xff1a; DigiCert 是最大的SSL证书颁发机构之一。它收购了Symantec的SSL和PKI业务&#xff0c;其中包括…

Java从坚持到精通-SpringBoot项目-多来米云客(持续更新中)

1.项目介绍 该项目模仿动力云客制作&#xff0c;是一款商业的集营销销售为一体的客户关系管理系统&#xff0c;其采用信息化、数字化方式来进行营销销售及客户管理。 云客指的是海量客户&#xff0c;通过技术方式实现的这一套系统&#xff0c;可用于自动化分析销售、市场营销…

一个通俗易懂的例子,带你彻底明白 同步异步,阻塞非阻塞

阻塞I/O&#xff08;Blocking I/O&#xff09; 例子&#xff1a;你亲自去仓库取书。 过程&#xff1a; 你开车去仓库。在路上花时间开车到仓库。到了仓库后&#xff0c;排队等待拿到书。拿到书后&#xff0c;开车回家。 在整个过程中&#xff0c;你自己&#xff08;相当于程…

521源码-免费音乐源码-最新流媒体在线音乐系统网站源码| 英文版源码| 音乐社区 | 多语言 | 开心版

免费音乐源码 一键自动安装&#xff1a;安装用翻译看提示操作即可 本源码下载地址&#xff1a;最新流媒体在线音乐系统网站源码| 英文版源码| 音乐社区 | 多语言 | 开心版 - 521源码 更多网站源码学习教程&#xff0c;请点击&#x1f449;-521源码-&#x1f448;获取最新资源…

数据结构(四)双向链表

文章目录 一、概念二、无头双向链表示意图三、操作&#xff08;一&#xff09;定义结构体&#xff08;二&#xff09;创建链表1. 函数定义2. 注意点3. 代码实现 &#xff08;三&#xff09;插入1. 函数定义2. 注意点3. 代码实现 &#xff08;四&#xff09;删除1. 函数定义2. 注…

了不起的学习生产板OrangePiAiPro

一. OrangePi AiPro介绍和初始化配置 介绍 香橙派 orangePiAIpro这个板子其实早在一年前就已经有了大面积推广且应用于各种真实的智能场景中了&#xff0c;比如图像识别&#xff0c;大文本语义解析&#xff0c;语音识别等&#xff0c;今日我也终于下手啦。 因为本人本科是一个嵌…

【Ambari】Docker 安装Ambari 大数据单机版本

目录 一、前期准备 1.1 部署 docker 1.2 部署 docker-compose 1.3 版本说明 二 、镜像构建启动 2.1 系统镜像构建 2.2 安装包源镜像构建 2.3 kdc镜像构建 2.4 集群安装 2.5 容器导出为镜像 三、Ubuntu环境安装测试 3.1 环境准备 3.2 集群容器启动 一、前期准备 1.…

Android Activity 设计详解

文章目录 Android Activity 设计说明1. Activity 的生命周期2. Activity 的启动模式3. Activity 的通信4. Activity 的布局和视图管理5. Activity 的配置变化处理6. Activity 的保存和恢复状态7. Activity 的任务和返回栈 总结 Android Activity 设计说明 在 Android 中&#…

了解Java垃圾收集

Java 的垃圾收集机制在 Java 应用程序开发中至关重要。此机制对于通过消除不再使用的对象来释放内存空间得过程来说至关重要。在这篇文章中&#xff0c;我带大家深入了解下 Java 垃圾收集的机制&#xff0c;并探索其工作原理、优点以及实现最佳性能的最佳实践。 1.什么是 Java…

数据挖掘之归一化

归一化(Normalization)的概念 在数据分析和机器学习中,归一化(Normalization)是一个常见的数据预处理技术。归一化的目的是将数据特征缩放到一个共同的尺度上,以便于后续的分析和建模。 归一化也称为最小-最大规范化 公式: x ′ x − m i n ( x ) m a x ( x ) − m i n ( x…

httpsok-v1.12.0支持LB证书自动部署

&#x1f525;httpsok-v1.12.0支持LB证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;基于全新的设计理念&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻松搞…

【Python】 探索Python中的“命名元组”

基本原理 在Python中&#xff0c;元组&#xff08;tuple&#xff09;是一种不可变序列&#xff0c;它允许我们存储一系列的元素&#xff0c;并且这些元素一旦被创建就不能被修改。元组的这种不可变性使得它们在多线程编程中非常安全&#xff0c;因为不需要担心数据被意外修改。…