Django 外键的使用方法详解


Posted in Python onJuly 19, 2019

一、描述

在利用django做网络开发的时候我们会遇到一个问题就是,我们建立了多张数据表,但是多张数据表中的内容是不一样的,但是之间有着联系比如:

我有两张表,一张是记录歌曲信息的内容,一张是对歌曲操作的内容(下载次数浏览次数),如果我在views中对下载次数进行一个排序,但是我不能只显示下载次数,我需要歌名的内容,此时我们就需要外键来完成这个工作。

歌曲的操作次数

Django 外键的使用方法详解

歌曲信息

Django 外键的使用方法详解

二、解决

由于在django中都是使用models.py文件来管理数据库,再通过views.py进行连接操作,最后用urls.py来映射到网站

1.models.py:

dynamic_id = models.AutoField('serial_num', primary_key=True)
   song = models.ForeignKey(Song, on_delete=models.CASCADE, verbose_name='song name')
   dynamic_plays = models.IntegerField('plays_num')
   dynamic_search = models.IntegerField('search_num')
   dynamic_down = models.IntegerField('down_num')

就可以完成外键的设置,第一个参数就是类名,这样就和歌曲信息关联在一起了。

2.views.py

# hot search songs
  search_song = Dynamic.objects.select_related('song').order_by('dynamic_search').all()[:8]
  # sort songs
  label_list = Label.objects.all()
  # hot songs
  play_hot_song = Dynamic.objects.select_related('song').order_by('dynamic_plays').all()[:10]
  # recommend songs
  daily_recommendation = Song.objects.order_by('song_release').all()[:3]
  # hot search and download
  search_ranking = search_song[:6]
  down_ranking = Dynamic.objects.select_related('song').order_by('dynamic_down').all()[:6]
  all_ranking = [search_ranking, down_ranking]
  return render(request, 'index/test.html', locals())

根据上面的信息可以看到在search_song中利用了dynamic_search这个字段来联系我们遇到的信息内容,将dynamic_search和song的信息连在一起外接字段是song,也可以是其他的连接方式。

3.idnex.html:

<img src="{% static 'image/logo.png' %}">
<br/>
{% for play_hot in play_hot_song %}
{{ play_hot.song.song_name }}
<br/>
{% endfor %}

在.html文件中我们使用了在views.py中的对象来引用了song当中的信息,play_hot_song是在views.py中的字段名,进行遍历的是play_hot.song.song_name,play_hot是遍历的参数,song是接口的字段名,song_name是外接对象的内容,这样就可以将信息映射到网站中。

三、结果

Django 外键的使用方法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的内存泄漏及gc模块的使用分析
Jul 16 Python
Python中itertools模块用法详解
Sep 25 Python
用Python中的字典来处理索引统计的方法
May 05 Python
Python subprocess模块详细解读
Jan 29 Python
python实现求两个字符串的最长公共子串方法
Jul 20 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
keras中的卷积层&amp;池化层的用法
May 22 Python
python文件及目录操作代码汇总
Jul 08 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 Python
python原类、类的创建过程与方法详解
Jul 19 #Python
Django 全局的static和templates的使用详解
Jul 19 #Python
python之拟合的实现
Jul 19 #Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 #Python
python SVM 线性分类模型的实现
Jul 19 #Python
Django密码系统实现过程详解
Jul 19 #Python
Tensorflow实现酸奶销量预测分析
Jul 19 #Python
You might like
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php除数取整示例
2014/04/24 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
JavaScript判断浏览器和hack滚动条的写法
2017/07/23 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
jQuery实现消息弹出框效果
2019/12/10 jQuery
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
简单介绍Python中的JSON使用
2015/04/28 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
python&amp;MongoDB爬取图书馆借阅记录
2016/02/05 Python
详解python中的json和字典dict
2018/06/22 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
python re.match()用法相关示例
2021/01/27 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
解除劳动合同协议书
2014/04/14 职场文书
郭明义电影观后感
2015/06/08 职场文书
大学运动会通讯稿
2015/07/18 职场文书