- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
python-Django项目实战-播放与下载
歌曲播放与下载
从网站首页、歌曲排行榜和歌曲有哪些信誉好的足球投注网站得知,每个页面的歌曲信息都设置了歌曲播放的地址链接,只要在页面上单击歌曲名即可访问歌曲播放页。总的来说,歌曲播放页是音乐网站的核心页面,所有页面的歌曲信息都有播放链接,通过播放链接而已访问可以访问歌曲播放页。
定义路由
歌曲播放由项目应用play实现,在play的urls.py中分别定义路由play和download。
路由的定义过程如下:
fromdjango.urlsimportpath
from.viewsimport*
urlpatterns=[
??#歌曲播放页
??path(int:id.html,playView,name=play),
??#歌曲下载
??path(download/int:id.html,downloadView,name=download)
]
视图定义
路由play和download设置路由变量id,该变量是模型Song的主键id,主要用于标记和区分当前播放的歌曲信息。路由play为用户提供在线试听、歌曲下载、歌曲点评链接和相关歌曲推荐,路由download用于实现歌曲下载功能。在play的view.py中分别定义视图函数playView和downloadView。
代码如下:
fromdjango.shortcutsimportrender
fromdjango.httpimportStreamingHttpResponse
fromindex.modelsimport*
?
defplayView(request,id):
??#热搜歌曲
??searchs=Dynamic.objects.select_related(song).order_by(-search).all()[:6]
??#相关歌曲推荐
??type=Song.objects.values(type).get(id=id)[type]
??relevant=Dynamic.objects.select_related(song).filter(song__type=type).order_by(-plays).all()[:6]
??#歌曲信息
??songs=Song.objects.get(id=int(id))
??#播放列表
??play_list=request.session.get(play_list,[])
??exist=False
??ifplay_list:
????foriinplay_list:
??????ifint(id)==i[id]:
????????exist=True
??ifexist==False:
????play_list.append({id:int(id),singer:songs.singer,name:,time:songs.time})
??request.session[play_list]=play_list
??#歌词
??ifsongs.lyrics!=暂无歌词:
????lyrics=str(songs.lyrics.url)[1::]
????withopen(lyrics,r,encoding=utf-8)asf:
??????lyrics=f.read()
??#添加播放次数
??#功能扩展:可使用Session实现每天只添加一次播放次数
??p=Dynamic.objects.filter(song_id=int(id)).first()
??plays=p.plays+1ifpelse1
??Dynamic.objects.update_or_create(song_id=id,defaults={plays:plays})
??returnrender(request,play.html,locals())
?
?
defdownloadView(request,id):
??#添加下载次数
??p=Dynamic.objects.filter(song_id=int(id)).first()
??download=p.download+1ifpelse1
??Dynamic.objects.update_or_create(song_id=id,de
您可能关注的文档
- 2018-2019年必威体育精装版人教版九年级化学下册第十单元-酸和碱期中试卷A4打印.docx
- 2019-2020年度人教版八年级物理下册第十章浮力月考试卷精品.docx
- 2021-2022学年度八年级数学下册模拟测试卷-614.docx
- 2021-2022学年度八年级数学下册模拟测试卷-2221.docx
- 2021-2022学年度八年级数学下册模拟测试卷-3063.docx
- 2021-2022学年度八年级数学下册模拟测试卷-6961.docx
- DeepSeek提示词使用技巧.docx
- Java实现责任链策略模式优雅处理多级请求的方式.docx
- JAVA实战订单超时自动取消设计方案.docx
- Java线程池原理详解.docx
- 三年级下册语文园地一市公开课一等奖省赛课获奖课件.pptx
- 生物的遗传和变异复习省公开课一等奖全国示范课微课金奖课件.pptx
- 初中历史专题三。民族团结和祖国统一省公开课一等奖全国示范课微课金奖课件.pptx
- 英语口语介绍介绍你最欣赏的一个人省公开课一等奖全国示范课微课金奖课件.pptx
- 2025-2030年中国标准式柴油发电机组行业深度研究分析报告.docx
- 2025-2030年中国药用淀粉糊精行业深度研究分析报告.docx
- 2025-2030年中国开启式电缆接续套管项目投资可行性研究分析报告.docx
- 2025-2030年中国煤油机械项目投资可行性研究分析报告.docx
- 2025-2030年中国复合插贴矿棉板项目投资可行性研究分析报告.docx
- 2025-2030年中国蟹黄丸行业深度研究分析报告.docx
文档评论(0)