阅读:69
最近闲来无事,想着把自己工作正在做的一个项目做一个简单的分享与实战教程,该项目不困难但是由于涉及要素过多所以比较复杂。所以这里分享出来也是为了帮助新手小白能在实战当中快速了解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就是我们刚刚创建的表