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标准库inspect的具体使用方法
Dec 06 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
python中的decorator的作用详解
Jul 26 Python
python实现图片彩色转化为素描
Jan 15 Python
WxPython建立批量录入框窗口
Feb 27 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python程序 创建多线程过程详解
Sep 23 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
PHP中list方法用法示例
2016/12/01 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
asp 的 分词实现代码
2007/05/24 Javascript
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
谈谈jQuery Ajax用法详解
2015/11/27 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
竞选学生会演讲稿
2014/04/25 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
开天辟地观后感
2015/06/09 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
导游词之太湖
2019/10/08 职场文书
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技