从零开始打造云端AI管理调度平台(六)内容库的设计_1

     阅读:24

最近闲来无事,想着把自己工作正在做的一个项目做一个简单的分享与实战教程,该项目不困难但是由于涉及要素过多所以比较复杂。所以这里分享出来也是为了帮助新手小白能在实战当中快速了解python知识。主要内容涉及Python、HTML5、JavaScript、云计算、AI等。

在本教程完成更新后会放出源码哦~

如果有大佬发现问题,也非常欢迎指教


上期回顾

上期我们完成了主页的设计,但其实主页所呈现的相关数据都是静态的,这期我们将围绕内容库板块的数据库部分来详细介绍。


为什么需要内容库

本平台大部分智能功能都是围绕媒体文件进行,建立一个内容库可以更加方便我们对素材的管理。


内容如何进来?

前期主要依靠扫描存储中的特定文件夹,后期会继续更新手动上传功能。之所以要依靠扫描功能,是因为希望实现未来全流程自动化,加快生产效率。


数据库设计

首先在进行数据库设计之前,因为django默认使用sqlite数据库,所以我们根据实际情况需要进行修改,比如我们本次项目采用的就是Mysql数据库,我们需要进行一定的配置。

这里关于Mysql的安装与配置我们就不详细介绍了。

安装完成后我们随便打开一个可以连接Mysql的可视化工具比如Mysql Workbench、Navicat等,这里我们使用的就是Mysql Workbench。

首先我们需要创建一个数据库,这里由于是教学所以我们命名为test:

create database test;


打开settings.py

将databases部分修改为以下内容:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',
        'USER':'root',
        'PASSWORD':''#这里输入你的数据库密码
    }
}

打开mainbody(你的app名称)文件夹下的_init_.py加入以下内容:

import pymysql
pymysql.install_as_MySQLdb()

然后我们与Mysql数据库的连接就已经完成了。


创建表

打开models.py文件,加入以下内容:

#媒体信息列表
class content_media(models.Model):
    id = models.AutoField(primary_key=True)
    create_time=models.DateTimeField()
    name=models.CharField(max_length=40)
    size=models.CharField(max_length=15)
    path=models.CharField(max_length=200)

字段名

数据类型

描述

id

int

主键

create_time

DATETIME

创建时间

name

VARCHAR

文件名

size

VARCHAR

文件大小

path

VARCHAR

文件路径

这里可能会有一些朋友有疑问,size不应该是数值型吗,怎么这里设置为字符型。因为在本系统当中文件大小的作用只是做一个展示,在文件入库前我们会将文件大小转换为一个方便阅读的格式,比如:

3,814,085 字节 -->  3.63MB

后续我们会在内容库中再加入标签等功能。

这里我们的表大体设计好,但是django并没有将其更新到Mysql当中,所以我们需要打开命令行进行以下操作:

python manage.py makemigrations
python manage.py migrate

在workbench中打开test数据库你会发现数据表已经同步过来了

其中最后的mainbody_content_media就是我们刚刚创建的表


如果文章帮助到了您,可否给一个点赞关注收藏呢~

如果遇到编程上的问题,欢迎留言哦~

关注公众号:跟着皮皮实战python

了解最新最全的python实战内容