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 从远程服务器下载日志文件的程序
Feb 10 Python
python使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python向日志输出中添加上下文信息
May 24 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
python opencv实现图像边缘检测
Apr 29 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
Autopep8的使用(python自动编排工具)
Mar 02 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
Python中的xlrd模块使用整理
Jun 15 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
一个ftp类(ini.php)
2006/10/09 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
2011/10/27 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
解决使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js问题
2018/08/30 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
python 实现让字典的value 成为列表
2019/12/16 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
30年同学聚会感言
2014/01/30 职场文书
学生手册家长评语
2014/02/10 职场文书
2014年幼儿园植树节活动方案
2014/03/02 职场文书
大学生自我鉴定书
2014/03/24 职场文书
广播体操口号
2014/06/18 职场文书
培训师岗位职责
2015/02/14 职场文书
自荐信怎么写
2015/03/04 职场文书