Django建立一个音乐网站(二)

news/2024/5/9 14:26:51/文章来源:https://blog.csdn.net/skrskr66/article/details/88418222

初步模板建立完成之后,就是数据的保存。数据也算是当前互联网中最热门的话题。

数据库的配置是西纳泽项目所使用的数据库的类型,不同的数据库需要设置不同的数据库引擎,Django提供4种数据库引擎。分别是:

'django.db.backends.mysql'
'django.db.backends.postgresql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'

在我看来,我觉得数据的连接和使用对程序员也是一个非常大的提升。

项目创建时默认使用Sqlite3数据库,这是一款轻型的数据库,常用于嵌入式系统开发,而且占用的资源非常多。但是django2中不再支持mysqldb作为MySQL的连接模块,而选择了mysqlclient模块

pip install mysqlclient

但是我在安装完成之后,还是有错误显示,这个时候在安装一个

pip install PyMySQL

这两个模块安装后,将MySQL开启,进行连接。

书上用5.7作为一个,我也建议使用5.7,因为在8版本的密码加密方式发生了改变。

所以8版本需要在MySQL的可视化工具中运行以下SQL语句:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
FLUSH PRIVILEGES;

之后我们下载一个navicat进行数据的管理。

建议下载navicat10版本的,网上有许多的注册码,我先贴一个我自用的,如果不行,在继续寻找

NAVN-LNXG-XHHX-5NOO

在这里插入图片描述

然后将之前DATABASE中设置的用户名和密码填入,连接就成功

首页的歌曲信息应该来自于数据库,除了Django内置的数据表之外,根据项目的数据库设计得知,网站一共定义了4张数据表,将4个数据表所对应的模型都在index的models.py中进行定义

#index的models.py
from django.db import models#歌曲分类表label
class Label(models.Model):label_id = models.AutoField('序号', primary_key=True)label_name = models.CharField('分类标签', max_length=10)def __str__(self):#设置返回值,若不设置,则默认返回Type对象return self.label_nameclass Meta:#设置Admin界面的显示内容verbose_name = '歌曲分类'verbose_name_plural = '歌曲分类'

上面的就是一个对数据表的定义,表名就是一个类名,并且在label_id定义了主键。跟SQL语句是相似的,只不过用的语言不同而已。接着分别定义了歌曲信息表song,歌曲动态表dynamic,歌曲点评表comment。

#歌曲信息表song
class Song(models.Model):song_id = models.AutoField('序号', primary_key=True)song_name = models.CharField('歌名', max_length=50)song_singer = models.CharField('歌手', max_length=50)song_time = models.CharField('时长', max_length=10)song_album = models.CharField('专辑', max_length=50)song_languages = models.CharField('语种', max_length=20)song_type = models.CharField('类型', max_length=20)song_release = models.CharField('发行时间', max_length=20)song_img = models.CharField('歌曲图片', max_length=20)song_lyrics = models.CharField('歌词', max_length=50, default='暂无歌词')song_file = models.CharField('歌曲文件', max_length=50)label = models.ForeignKey(Label, on_delete=models.CASCADE,verbose_name='歌名分类')def __str__(self):return self.song_nameclass Meta:#设置Admin界面的显示内容verbose_name = '歌曲信息'verbose_name_plural = '歌曲信息'#歌曲动态表dynamic
class Dynamic(models.Model):dynamic_id = models.AutoField('序号', primary_key=True)#生成默认的id字段song = models.ForeignKey(Song, on_delete=models.CASCADE, verbose_name='歌名')dynamic_plays = models.IntegerField('播放次数')dynamic_search = models.IntegerField('搜索次数')dynamic_down = models.IntegerField('下载次数')class Meta:#设置admin界面的显示内容verbose_name = '歌曲动态'verbose_name_plural = '歌曲动态'class Comment(models.Model):comment_id = models.AutoField('序号', primary_key=True)comment_text = models.CharField('内容', max_length=500)comment_user = models.CharField('用户', max_length=20)song = models.ForeignKey(Song, on_delete=models.CASCADE,verbose_name='歌名')#on_delete=models.CASCADE,删除关联数据,与之关联也删除comment_date = models.CharField('日期', max_length=50)class Meta:verbose_name = '歌曲评论'  #verbose_name 在站点管理设置字段的显示名称verbose_name_plural = '歌曲评论'

一些django定义的说明

AutoField:只是为模型创建一个自增长的字段,所做的仅仅是创建。自增的工作由所使用的数据库完成。

CharField:只是字符串类型

ForeignKey:类似SQL中的外键,在某类名中使用,作为另一类名的外键

只要了解SQL,并且有了一定的SQL语法,这些理解起来比较容易的

定义完成之后,再次到Pycharm中的Terminal输入数据迁移指令:

F:\music>python manage.py makemigrations
Migrations for 'index':index\migrations\0001_initial.py...F:\music>python manage.py migrate

之后打开navicat,可以看到建立了许多表

在这里插入图片描述

点开表之后,我们可以进行导入数据等一些列操作。接下来就是对站点进行装饰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_854651.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django建立一个音乐网站(四)

之前将网站一些该有的元素都准备完成了。接下来就是关于用户注册和后台admin设置。 user模块 关于一个网站的浏览量是靠用户的数量来决定的。所以每一个用户在网站的操作,要做出限制。这个是可以实现的。接着还有一些个人的账号和数据信息可以完善,让管…

中小规模网站架构解析

中小规模网站架构组成 1)用户访问网站的人员 2) 防火墙 (firewalld)进行访问策略控制 3) 负载均衡服务器 (nginx)对用户的访问请求进行调度处理 4) web服务器 (nginx)处理用户的请求 5) 数据库服务器 (mysql)存储的字符数据 6) 存储服务器 (nfs)存储图片 音频 视频…

阿里云ECS服务器部署LNMP实现WordPress站点搭建创建自己的博文网站

网址https://developer.aliyun.com/topic/ecs2022 选择网址可获得一个月的体验机会 配置如上图选择立即购买,下一步即可,购买完毕后等待三分钟修改密码,先进入esc工作台,选择实例 修改完密码后等待重启,重启成功可…

扎克伯格13年前写的Facebook网站代码,你见过吗?

2017年的扎克伯格身价狂飙,越来越接近比尔盖茨。 看他在科技界的战绩,总算成为一个没有被代码耽误的商业奇才! 那么,扎克伯格的编程水平如何呢? 网友一:扎克伯格一个星期建立了Facebook网站,水平…

2017 年最受欢迎的 11 个编程挑战网站

如果你正在在学习编程,那么我可以告诉你一个提高技能的好方法,那就是敢于去解决编码过程中遇到的难题。解决不同类型的难题,可以帮助你成为一名优秀的问题解决者;不管编程语言多复杂,你也会得心应手;另外在…

毕业生--参考文献查询网站及方法(中文核心及以上)

一、知网 (1)以我为例,是用校外访问登录,可以免费下载知网文献资源。 (2)进入新版知网,使用高级检索。 (3)进行多条件筛选检索。 小提示:全部期刊包括了除核…

有权限的网页能分享内页?_如何做好网站内页的SEO优化?

SEOer们都清楚,企业招聘SEO目的是什么?很简单,获得更多的网站流量,提高流量转换率,最终完成订单交易。然而,许多搜索引擎只专注于优化首页上的几个关键词,而内页上并没有优化的痕迹。只有一个结…

8个获取手机应用程序设计灵感的网站

曾经,CSS 画廊非常流行,网页设计师们会定期访问这些网站获取灵感。现在仍然可以方便迅速找到令人兴奋的东西(例如 Dribbble 和 Behance 对设计有很大的帮助)。 对于移动应用程序设计,存在类似的画廊,我相信…

带给您灵感的25个最新鲜的 HTML5 网站

感谢 HTML5 带来的惊人的先进特性,在未来几年,HTML5 将会继续发挥巨大的推动作用,不仅是在 Web 应用中,网页设计领域也会有新的变革。今天,我们在这里集合了能够带给您灵感的25个最新鲜的 HTML5 网站。 NeddStereo Cre…

经典网页设计:20个新鲜出炉的 HTML5 网站

经典网页设计系列精彩继续,今天这篇文章向大家展示20新鲜出炉的 HTML5 网站作品,让大家感受一下 HTML5 的魅力。HTML5 新增了许多重要的特性,像 video、audio 和 canvas 等等,这些特性使得能够很容易的网页中包含多媒体内容&#…

神奇的滚动动画,30个视差滚动网站设计

使用 HTML5 和 CSS3,我们能够在浏览器中创建更有趣和更吸引眼球的效果。其中,视差滚动(Parallax Scrolling)就是这样的效果之一。这种技术通过在网页向下滚动的时候,控制背景的移动速度比前景的移动速度慢来创建出令人…

经典网页设计:使用颜色滤镜效果的20个网站

大的背景图像已经成为了今年网页设计的趋势。在图像排布文本和按钮并很好的搭配相当具有挑战性。因此,设计师使用创意的 Photoshop 滤镜和渐变来在图像上创建一个遮罩,并在其上放置其他的网页设计元素。这种新鲜的设计给网站带来独特的光泽。在此&#x…

HTML5初学者福利!11个在线学习网站推荐

HTML5的强大及流行趋势,让更多的人想要系统的对它进行学习。而大多数人获取HTML5知识的重要途径都是网络,不过面对五花八门的搜索结果,是不是觉得摸不着头脑,无法抉择?在这里,文章作者Abhishek Thakur以自己…

自媒体人必备:国内最专业的自媒体平台导航网站,有它就够了

这个自媒体导航是小编自己搭建的网站,yechuang.top/nav/zimeiti 主要收录了自媒体人常用的网站、工具、书籍。 自媒体人的超级搜索条做为一个资深的收集控,我愿意把自己收集的资源分类整理后免费分享出来 小编在网站上添加了一个超级搜索条,聚…

UI设计网站 | 常用的UI设计网站大集合

好多小伙伴知道的UI设计网站可能也就那么几个,今天给大家整理了一些经常跟新的UI学习网站,每天坚持浏览这些网站,多看大神的作品和文章,可以快速的提升你的UI设计水平,切记,不要只是看,要一边看…

11个LOGO设计灵感网站推荐,帮你提高LOGO设计工作效率

设计LOGO是一件很费脑细胞的活,需要很多的创意灵感,今天给大家把一些专业的LOGO设计网站和LOGO图库整合在一起了,希望大家能多一些灵感创意,能保质保量的完成你的LOGO。 LOGO大师 http://www.logodashi.com LOGO大师网是国内领先的…

产品经理必须知道的PM社区和好用的原型工具网站

我们平常需要用到很多产品经理网站,今天分享一些优秀的产品经理网站,相信可以很好地提高你的工作效率。 好多产品经理或者刚转行的朋友总是在画原型的时候缺乏灵感,或者想找一下可以参考的原型或思路,那小编本期整理了一下产品经…

免费开源的建站程序大全,不会编程也可以自助搭建网站了哦

想建网站又不会编程的小伙伴有福啦,本期推荐一些开源的cms建站程序,不需要写后端的任何逻辑代码,轻轻松松就可以建立自己的网站了,当然,要想网站有自己的个性,模版还是需要自己写的,只需要会简单…

MaterialUp - 寻找材料设计灵感必备的网站

MaterialUp 是一个展示最好的材料设计 APP,网站和概念的地方,每天都会更新。每款设计都精心挑选,展示那些有才华的设计师的伟大工作。 MaterialUp 的核心价值是让尽可能多的设计师提供有价值灵感。 很棒!立即去看看

基于Node.JS的六款开源内容管理和静态网站生成系统

在内容管理系统(CMS)中,豪无疑问目前最流行的是 WordPress。它是一个可靠、 稳定的系统,有一个非常活跃的社区。它能使那些对技术不熟悉或根本不懂技术的人也能搭建网站,不仅局限于博客。它还是一个静态站点生成器。Je…