Django实现音乐网站 ⑺

这篇具有很好参考价值的文章主要介绍了Django实现音乐网站 ⑺。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

本篇主要是后台对歌手原有实现功能的基础上进行优化处理。

 

目录

新增编辑

表字段名称修改

隐藏单曲、专辑数

姓名首字母

安装xpinyin

获取姓名首字母

重写保存方法

列表显示

图片显示处理

引入函数

路径改为显示图片

修改列表默认设置

修改列表排序

总结


 

新增编辑

表字段名称修改

新增、编辑页面字段显示为数据表设计字段,改为中文显示。

在Model中直接修改Singler字段,增加verbose_name参数。

verbose_name:admin模式中字段的显示名称。

内容如下:

class Singler(models.Model):
    """ 歌手表模型 """

    class Meta:
        verbose_name = '歌手'
        verbose_name_plural = '歌手'

    name = models.CharField(max_length=50, help_text='请输入歌手名称', verbose_name='姓名')
    first_letter = models.CharField(max_length=15, help_text='请输入歌手名称首字母', verbose_name='姓名首字母')
    # 设置上传位置
    portrait = models.ImageField(upload_to=upload_save_path, help_text='请上传歌手照片', verbose_name='照片')
    birthday = models.DateField(default=date.today, help_text='请选择歌手生日', blank=True, verbose_name='生日')
    height = models.IntegerField(help_text='请输入歌手身高(cm)', default=0, blank=True, verbose_name='身高(cm)')
    weight = models.IntegerField(help_text='请输入歌手体重(kg)', default=0, blank=True, verbose_name='体重(kg)')
    constellation = models.CharField(max_length=50, help_text='请输入歌手星座', verbose_name='星座')
    # editable=False 后台将不再显示
    single_num = models.IntegerField(default=0, editable=False)
    album_num = models.IntegerField(default=0, editable=False)
    desc = models.TextField(help_text='请输入歌手简介', verbose_name='简介')

效果:

Django实现音乐网站 ⑺,# Django项目,django,python,后端

 

隐藏单曲、专辑数

歌手所拥有的单曲数和专辑数,应该是添加、删除单曲或专辑时动态计算出的数值,不应该是后台添加的,之前不会隐藏,经过查看表模型参数找到了设置方法。

editable:默认值为True;

如果值为Fasle,则在admin模式下不能改写。

修改歌手表模型单曲数和专辑数字段,设置editable参数。

内容如下:

single_num = models.IntegerField(default=0, editable=False)
album_num = models.IntegerField(default=0, editable=False)

刷新后,新增歌手详情单曲数和专辑数设置不再显示。

姓名首字母

原有姓名首字母需要自己手动输入,改为程序自动通过输入的歌手名称取得姓名首字母。

安装xpinyin

需要下载三方库,安装命令:

pip install xpinyin
获取姓名首字母

在player/models.py中处理获取首字母并设置入库操作。

from xpinyin import Pinyin


def get_first_letter(name):
    """ 获取姓名中的首字母 """

    obj = Pinyin()
    name_pinyin = obj.get_pinyin(name, '')
    return name_pinyin[0]
重写保存方法

在Singler类中,重写父类保存方法,增加设置歌手姓名首字母。

并把首字母字段设置为admin不可编辑。

class Singler(models.Model):
    """ 歌手表模型 """

    ......

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        """ 重写save方法 """

        self.first_letter = get_first_letter(self.name)
        super().save()

 

列表显示

图片显示处理

修改后台歌手表,在player中的admins.py中的SinglerAdmin。

需要使用format_html()函数。

 

引入函数
from django.utils.html import format_html
路径改为显示图片
class SinglerAdmin(admin.ModelAdmin):

    # 列表页属性
    def get_name(self):
        return self.name

    get_name.short_description = '歌手名称'

    def get_portrait(self):
        return format_html(
                '<img src="/{}" width="100px" height="100px"/>',
                self.portrait,
            )

原因:django从view向template传递HTML字符串的时候,django默认不渲染此HTML,原因是为了防止这段字符串里面有恶意攻击的代码。所以要把列表的图片路径改为显示图片,需要使用函数,通过函数的{}占位符,把图片路径赋值给HTML元素img。

效果:

Django实现音乐网站 ⑺,# Django项目,django,python,后端

修改列表默认设置

适用于列表某字段为空时,设置显示内容。

比如歌手的身高体重都为默认0时。

Django实现音乐网站 ⑺,# Django项目,django,python,后端

 

修改player/admin.py中对身高和体重的显示处理。

内容如下:

def get_height(self):
    if self.height < 1:
        return '——'
    else:
        return str(self.height) + 'cm'

get_height.short_description = '身高'

def get_weight(self):
    if self.weight < 1:
        return '——'
    else:
        return str(self.weight) + 'kg'

效果:

Django实现音乐网站 ⑺,# Django项目,django,python,后端

修改列表排序

通过Meta类来给模型赋予元数据,设定ordering排序。

class Singler(models.Model):
    """ 歌手表模型 """

    class Meta:
        verbose_name = '歌手'
        verbose_name_plural = '歌手'
        # 正序
        ordering = ['first_letter']
        # 倒序
        # ordering = ['-first_letter']

总结

对后台歌手模块进行部分功能优化,主要通过新增编辑和列表两方面来进行优化。文章来源地址https://www.toymoban.com/news/detail-632333.html

到了这里,关于Django实现音乐网站 ⑺的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django实现音乐网站 ⑶

    使用Python Django框架制作一个音乐网站,在系列文章2的基础上继续开发, 本篇主要是后台单曲、专辑、首页轮播图表模块开发。 目录 后台单曲、专辑表模块开发 表结构设计 单曲表(singe)结构 专辑表(album)结构 创建表模型 创建表 后台注册表模型 后台首页轮播图表模块开

    2024年02月14日
    浏览(30)
  • Django实现音乐网站 ⒆

    使用Python Django框架做一个音乐网站, 本篇主要为排行榜功能及音乐播放器部分功能实现。 目录 推荐排行榜优化 设置歌手、单曲跳转链接 排行榜列表渲染优化 视图修改如下: 模板修改如下: 单曲详情修改 排行榜列表 设置路由 视图处理 模板渲染 设置跳转入口 播放器功能

    2024年02月07日
    浏览(27)
  • Django实现音乐网站 ⑿

    使用Python Django框架制作一个音乐网站, 本篇主要是加载静态资源和推荐页-轮播图、推荐歌单功能开发。 目录 加载静态资源 引入jquery.js 引入bootstrap资源文件 创建基类模板样式文件 推荐页开发 轮播图开发 下载 加载swiper 自定义引入继承块设置 使用swiper 设置轮播div宽高 轮播

    2024年02月11日
    浏览(24)
  • Django实现音乐网站 ⑹

    使用Python Django框架制作一个音乐网站, 本篇主要是在添加编辑过程中对后台歌手功能优化及表模型名称修改、模型继承内容。 目录 表模型名称修改 模型继承 创建抽象基类 其他模型继承 更新表结构 歌手新增、编辑优化 表字段名称修改 隐藏单曲数和专辑数 姓名首字母 安装

    2024年02月13日
    浏览(31)
  • Django实现音乐网站 ⑴

    使用Python Django框架制作一个音乐网站。 目录 网站功能模块 安装django 创建项目 创建应用 注册应用 配置数据库 设置数据库配置 设置pymysql库引用 创建数据库 创建数据表 生成表迁移文件 执行表迁移 后台管理 创建管理员账户 启动服务器 登录网站 配置时区 配置语言  总结

    2024年02月15日
    浏览(28)
  • Django实现音乐网站 ⑼

    使用Python Django框架制作一个音乐网站, 本篇主要是后台对专辑、首页轮播图原有功能的基础上进行部分功能实现和显示优化。 目录 专辑功能优化 新增编辑 专辑语种改为下拉选项 添加单曲优化显示 新增单曲多选 更新歌手专辑数、专辑单曲数 获取歌手专辑数 保存处理专辑

    2024年02月13日
    浏览(27)
  • Django实现音乐网站 ⑾

    使用Python Django框架制作一个音乐网站, 本篇主要是前端开发前的一些必要配置和首页展示开发。   目录 配置应用路由 创建应用路由文件 应用路径加入项目路径 创建项目模板 创建项目及应用模板路径 设置模板路径 设置静态资源路径 创建静态资源路径 配置静态资源路径

    2024年02月12日
    浏览(29)
  • Django实现音乐网站 ⒁

    使用Python Django框架制作一个音乐网站, 本篇主要是歌手页-全部歌手页功能开发。 目录 分出首页样式内容 创建首页样式文件 首页引入样式文件 全部歌手列表 创建路由 显示视图 引入分页实现库 视图方法 创建歌手首页 增加歌手跳转 导航条改活 首页增加导航条 歌手页增加

    2024年02月10日
    浏览(29)
  • Django实现音乐网站 (21)

    使用Python Django框架做一个音乐网站, 本篇音乐播放器功能完善及原有功能修改。 目录 播放列表修改 视图修改 删除、清空播放器 设置路由 视图处理 修改加载播放器脚本 模板修改 脚本设置 清空功能实现 删除列表音乐 播放列表无数据处理 视图修改 播放音乐与列表同步 修

    2024年02月07日
    浏览(31)
  • Django实现音乐网站 ⑻

    使用Python Django框架制作一个音乐网站, 本篇主要是后台对单曲原有功能的基础上进行部分功能实现和显示优化。 目录 新增编辑 歌手下拉显示修改 设置歌曲时长 安装eyed3库 获取mp3时长 歌曲时长字段修改 重写save方法 增加歌手单曲数量 查询歌手单曲数量 列表显示 显示歌手

    2024年02月13日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包