当前位置: 首页 > news >正文

设计师助理一般都干嘛百度刷排名seo

设计师助理一般都干嘛,百度刷排名seo,关于网站建设工作的通报,一个网站如何做推广方案设计使用Python Django框架制作一个音乐网站, 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 …

使用Python Django框架制作一个音乐网站,

本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。

目录

新增编辑

歌手下拉显示修改

设置歌曲时长

安装eyed3库

获取mp3时长

歌曲时长字段修改

重写save方法

增加歌手单曲数量

查询歌手单曲数量

列表显示

显示歌手名称

获取歌手名称

设置歌手名称显示

列表显示歌曲时长

单曲表模型整体

总结


新增编辑

歌手下拉显示修改

新增时选择歌手显示为对象,无法确认歌手。

需修改Singler表模型,增加__str__方法

内容如下:

def __str__(self):""" 修改返回格式 """return self.name

 效果:

设置歌曲时长

歌曲时长的值从输入框填写改为后台设置为读取歌曲文件获取的时长。

安装eyed3库

命令如下:

pip install eyed3

获取mp3时长

内容如下:

import eyed3def get_duration_mp3(file_path):""" 获取mp3音频文件时长 """info = eyed3.load(file_path)return info.info.time_secs

歌曲时长字段修改

修改Singe Model类

首先把歌曲时长字段设置为admin不可改写。

duration = models.IntegerField(editable=False)

重写save方法

在重写save方法的内部,需要先调取父类保存方法后文件会被保存到相应路径,

之后才会有文件路径,读取MP3文件获取文件时长后,再存储一次;至于简单的方法因为对django还在学习中,暂时没发现。

def save(self, force_insert=False, force_update=False, using=None,update_fields=None):""" 重写save方法 处理歌曲时长 """super().save()#get_singe_singler_num(self.singler)path_name = str(self.path.name)if path_name.endswith(".mp3"):save_path = os.path.join(settings.MEDIA_ROOT, path_name)print(save_path)self.duration = get_duration_mp3(save_path)print(self.duration)super().save()

增加歌手单曲数量

需要在增加相应歌手关联单曲时同时增加该歌手的单曲数量。

查询歌手单曲数量

在player/models.py中新增方法,通过单曲表歌手外键id查询相应歌手拥有单曲数量。

内容如下:

def get_singe_singler_num(singler_id):"""获取单曲表中所属歌手数:param singler_id::return:"""return Singe.objects.filter(singler_id=singler_id).count()

同步歌手单曲数量

单曲保存时处理歌手单曲数量,修改单曲表模型save方法,在最后保存前增加处理。

内容如下:

def save(self, force_insert=False, force_update=False, using=None,update_fields=None):""" 重写save方法 处理歌曲时长 歌手单曲数量 """super().save()path_name = str(self.path.name)if path_name.endswith(".mp3"):save_path = os.path.join(settings.MEDIA_ROOT, path_name)self.duration = get_duration_mp3(save_path)# 获取相应歌手单曲数singe_num = get_singe_singler_num(self.singler_id)# 更新相应歌手的单曲数Singler.objects.filter(pk=self.singler_id).update(singe_num=singe_num)super().save()

列表显示

显示歌手名称

单曲列表关联歌手外键id,如果需要显示歌手名称,也需要修改否则只显示外键id。

获取歌手名称

在player/admin.py中设置方法,通过外键id去查询相应歌手信息。

内容如下:

def get_singler_name(id):"""获取歌手名称:param id:歌手id:return:"""return Singler.objects.get(pk=id)

设置歌手名称显示

修改后台单曲类中外键字段自定义显示处理。

class SingeAdmin(admin.ModelAdmin):""" 后台单曲类 """......def get_singler_id(self):return get_singler_name(self.singler_id)get_singler_id.short_description = '歌手'

效果:

列表显示歌曲时长

修改后台单曲类,增加显示歌曲时长字段。

def get_duration(self):return self.durationget_duration.short_description = '时长(s)'# 显示字段
list_display = ['id', get_name, get_singler_id, get_duration, get_addtime, get_updatetime]

单曲表模型整体

class Album(BaseModel):""" 专辑表 """class Meta:verbose_name = '专辑'verbose_name_plural = '专辑'name = models.CharField('专辑名称', max_length=50, help_text='请输入专辑名称')cover = models.ImageField('专辑封面', upload_to=upload_save_path, help_text='请上传专辑封面图')desc = models.CharField('专辑描述', max_length=255, help_text='请输入专辑描述')single_num = models.IntegerField(default=0, editable=False)langs = [('国语', '国语'), ('普通话', '普通话'), ('英语', '英语'), ('日韩', '日韩')]single_lang = models.CharField('专辑语种', max_length=50, choices=langs, help_text='请选择专辑语种')# 设置与歌手表关联外键 一对多singler = models.ForeignKey("Singler", on_delete=models.CASCADE, verbose_name='歌手', help_text='请选择歌手')# 设置与单曲表关联外键 多对多Singe = models.ManyToManyField('Singe', verbose_name='单曲', help_text='请选择单曲')def save(self, force_insert=False, force_update=False, using=None,update_fields=None):""" 重写save方法 处理单曲数和歌手专辑数 """# 获取选中的单曲字典sing_set = self.Singe.all()single_num = len(sing_set)# 更新单曲数self.single_num = single_num# 获取所属歌手专辑数album_num = get_album_singler_num(self.singler_id)super().save()# 更新歌手表-专辑数Singler.objects.filter(pk=self.singler_id).update(album_num=album_num)

总结

对后台单曲模块进行部分功能优化,主要通过新增编辑和列表两方面来进行优化。

http://www.dinnco.com/news/24733.html

相关文章:

  • php网站开发 多少钱百度推广效果怎样
  • 教育网站建设需求文档互联网营销推广方案
  • asp 下载其他网站网站流量分析报告
  • 在线网站建设建议网站友情链接出售
  • 做亚马逊一年赚了60万青岛seo整站优化公司
  • 哪个网站做外贸的多百度seo培训
  • 上海静安网站建设国色天香站长工具
  • 做网站是怎样赚钱免费的企业黄页网站
  • 做网站需要编程?深圳高端网站建设公司
  • 永仁县建设工程信息网站站长网站大全
  • 做百度竞价用什么网站网络营销案例ppt课件
  • 怎么补网站漏洞中超最新积分榜
  • 服务器托管专线长沙seo霜天
  • 企业网站后台模板百度指数查询排行榜
  • 响应式网站免费百度电话查询
  • 建立本机网站百度快照客服
  • wordpress wpjamseo自动点击排名
  • wordpress采集到草稿单页网站seo优化
  • 网站设计一般多少钱一个页面网站制作论文
  • 珠海网站开发公司百度免费发布信息平台
  • 淄博做网站建设公司广州网络科技有限公司
  • 长沙网站建设方面黑科技引流推广神器免费
  • 镇江做网站门户网站软文
  • 外国人做的网站百度竞价推广代理
  • 常州品牌网站建设线下营销推广方式有哪些
  • 西部数码网站管理助手 mysql保存路径中国十大seo
  • 网站建设与用户体验网络推广精准营销推广
  • 北京公司网站优化新手销售怎么和客户交流
  • 非洲外贸网站百度大数据中心
  • linux下网站搭建电商数据分析