Django实现音乐网站 ⑷

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

使用Python Django框架制作一个音乐网站,在系列文章3的基础上继续开发,

本篇主要是后台歌曲类型表、歌单表模块功能开发。

目录

表结构设计

歌曲类型表结构

歌单表结构

创建表模型

创建表

后台注册表模型

引入表模型

后台自定义

总结


表结构设计

歌曲类型表结构

字段

类型

注释

id

int(11)

自增id

name

varchar(100)

歌单名称

pid

int(11)

父类型id 0表明为父类

歌单表结构

字段

类型

注释

id

int(11)

name

varchar(100)

歌单名称

cover

varchar(100)

封面路径

playnum

int(11)

播放量

addtime

int(11)

添加时间

updatetime

int(11)

更新时间

 

创建表模型

还是在player/models.py中添加。歌单表与类型表是多对多关系,中间表不需要创建,

只需要声明好关系,django会自动创建相应中间表。

内容如下:

class SongCategory(models.Model):
    """ 歌曲类型表 """

    name = models.CharField(max_length=100, help_text='请输入类型名称')
    pid = models.IntegerField(default=0, help_text='父类型id')


class SongSheet(models.Model):
    """ 歌单表 """

    name = models.CharField(max_length=100, help_text='请输入歌单名称')
    cover = models.ImageField(upload_to=upload_save_path, help_text='请上传歌单封面图')
    playnum = models.IntegerField(default=0, help_text='请输入播放量')
    
    addtime = models.DateTimeField(auto_now_add=True)
    updatetime = models.DateTimeField(auto_now=True)

    # 歌曲类型与歌单表 多对多关系
    category = models.ManyToManyField('SongCategory')

    # 歌单表与单曲表多对多关系
    singe = models.ManyToManyField('Singe')

注意:可通过choices参数把输入框改为下拉菜单。

创建表

python manage.py makemigrations

python manage.py migrate

创建了四个表,分别为歌曲类型表、歌单表、歌单类型表、歌单单曲表;

歌曲类型表和歌单表结构与表结构设计相同,不再展示;

中间表结构如下:

CREATE TABLE `player_songsheet_singe` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `songsheet_id` bigint(20) NOT NULL,
  `singe_id` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `player_songsheet_singe_songsheet_id_singe_id_78f26d1c_uniq` (`songsheet_id`,`singe_id`),
  KEY `player_songsheet_singe_songsheet_id_2375e76e` (`songsheet_id`),
  KEY `player_songsheet_singe_singe_id_022e51d3` (`singe_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;


CREATE TABLE `player_songsheet_category` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `songsheet_id` bigint(20) NOT NULL,
  `songcategory_id` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `player_songsheet_categor_songsheet_id_songcategor_d9f0af95_uniq` (`songsheet_id`,`songcategory_id`),
  KEY `player_songsheet_category_songsheet_id_80b16cc8` (`songsheet_id`),
  KEY `player_songsheet_category_songcategory_id_397ab572` (`songcategory_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

可以看出中间表字段关系与设计相符,并且相应索引都已经创建。

后台注册表模型

在player/admin.py中操作。

引入表模型

from .models import SongCategory, SongSheet

后台自定义

修改默认的显示、过滤、搜索、分页。

class SongCategoryAdmin(admin.ModelAdmin):

    def get_name(self):
        return self.name

    get_name.short_description = '类型名称'

    def get_pid(self):
        return self.pid

    get_pid.short_description = '类型父id'

    # 显示字段
    list_display = ['id', get_name, get_pid]
    # 过滤器
    list_filter = ['name']
    # 搜索
    search_fields = ['name']
    # 分页
    list_per_page = 10


class SongSheetAdmin(admin.ModelAdmin):

    def get_name(self):
        return self.name

    get_name.short_description = '类型名称'

    def get_cover(self):
        return self.cover

    get_cover.short_description = '歌单封面'


    def get_addtime(self):
        return self.addtime

    get_addtime.short_description = '创建时间'

    def get_updatetime(self):
        return self.updatetime

    # 显示字段
    list_display = ['id', get_name, get_cover]
    # 过滤器
    list_filter = ['name']
    # 搜索
    search_fields = ['name']
    # 分页
    list_per_page = 10

admin.site.register(SongCategory, SongCategoryAdmin)
admin.site.register(SongSheet, SongSheetAdmin)

效果:

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

 

总结

表结构的设计和创建,包括后台注册操作起来大致相同,多创建一些表熟练了就简单了;

至此数据表设计和创建基本完成,下一步就是数据添加和后台使用优化了。文章来源地址https://www.toymoban.com/news/detail-628781.html

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

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

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

相关文章

  • Django实现音乐网站 ⑹

    Django实现音乐网站 ⑹

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

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

    Django实现音乐网站 ⑼

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

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

    Django实现音乐网站 ⑽

    使用Python Django框架制作一个音乐网站, 本篇主要是后台对歌曲类型、歌单功能原有功能进行部分功能实现和显示优化。 目录 歌曲类型功能优化 新增编辑 优化输入项标题显示 父类型显示改为下拉菜单 列表显示 父类型显示名称 过滤器增加父类型 歌单表功能优化 新增编辑

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

    Django实现音乐网站 ⑾

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

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

    Django实现音乐网站 ⑻

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

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

    Django实现音乐网站 ⒀

    使用Python Django框架制作一个音乐网站, 本篇主要是推荐页-推荐排行榜、推荐歌手功能开发。 目录 推荐页开发 推荐排行榜 单曲表增加播放量 表模型增加播放量字段 执行表操作 模板中显示外键对应值 表模型外键设置 获取外键对应模型值 推荐排行榜视图 推荐排行榜模板 推

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

    Django实现音乐网站 ⑿

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

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

    Django实现音乐网站 ⒁

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

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

    Django实现音乐网站 (21)

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

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

    Django实现音乐网站 ⒂

    使用Python Django框架制作一个音乐网站, 本篇主要是歌手详情页-基本信息、单曲列表功能开发实现内容。 目录 歌手基本信息 增加路由 显示视图 模板显示 推荐歌手跳转详情 歌手增加基本信息 表模型增加字段 数据表更新 基本信息增加内容渲染 歌手单曲列表 路由设置 跳转设

    2024年02月10日
    浏览(20)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包