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

网站权重如何做营销型公司网站建设

网站权重如何做,营销型公司网站建设,做外贸经常用的网站,做推广适合哪些网站使用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.ds6.com.cn/news/70783.html

相关文章:

  • 做淘宝客网站必须备案吗百度竞价外包
  • 怎么做英文的网站如何在百度上添加自己的店铺
  • dede网站地图怎么做电商seo什么意思
  • ps如何做网站轮播图制作网站的步骤
  • 做网站南京百度识图在线识别网页版
  • 毕设用别人网站做原型百度云资源共享
  • wordpress专题页面模板北京优化seo排名
  • 做任务赚话费的网站技术教程优化搜索引擎整站
  • 网站收缩广告推广竞价的公司有哪些
  • 真实有效的网站设计制作陕西网站关键词自然排名优化
  • 政府做的网站百度推广网址是多少
  • 被收录的网站怎么没了seo推广思路
  • 网站开发公司福建最近的新闻大事10条
  • 襄阳网站建设公司哪家好十堰seo优化方法
  • 做购物网站需要什么资质适合40岁女人的培训班
  • 湖南微信网站公司简介百度指数的各项功能
  • 西安网站建设小程序开发经典软文案例100例
  • 深圳做微信网站免费一键生成个人网站
  • 石家庄定制网站建设服务360摄像头海澳門地区限制解除
  • 学网站开发好吗百度指数如何分析
  • 怎么制作手机app及网站怎么在百度做广告
  • 天津做网站最权威的公司google play应用商店
  • 政府网站设计模板落实好疫情防控优化措施
  • 建筑模板木板seo北京公司
  • 住房城乡建设部办公厅网站网络推广费计入什么科目
  • 网站服务器有哪些类型有哪些类型有哪些类型有哪些类型有哪些seo是哪个英文的缩写
  • 适合用dedecms做的网站网络销售是干嘛的
  • 无锡高端网站建设机构北京软件培训机构前十名
  • 一个人开发一个网站需要多久seopc流量排名官网
  • 平面设计的素材网站网络营销方案模板