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 列表排序方法reverse、sort、sorted详解
Jan 22 Python
python 2.7.14安装图文教程
Apr 08 Python
python实现监控某个服务 服务崩溃即发送邮件报告
Jun 21 Python
python 返回列表中某个值的索引方法
Nov 07 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
django 环境变量配置过程详解
Aug 06 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
windows安装python超详细图文教程
May 21 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
如何选购合适的收音机
2021/03/01 无线电
PHP生成Flash动画的实现代码
2010/03/12 PHP
php判断并删除空目录及空子目录的方法
2015/02/11 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
javascript实现2048游戏示例
2014/05/04 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
python处理二进制数据的方法
2015/06/03 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
python requests.post带head和body的实例
2019/01/02 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
纯CSS3实现地球自转实现代码(图文教程附送源码)
2012/12/26 HTML / CSS
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
学校食堂采购员岗位职责
2013/12/05 职场文书
挂职思想汇报
2013/12/31 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
历史专业大学生职业生涯规划书
2014/03/13 职场文书
年终总结会议主持词
2014/03/17 职场文书
毕业生求职信范文
2014/06/29 职场文书
社团活动总结怎么写
2014/06/30 职场文书
校运动会广播稿300字
2014/10/07 职场文书
家长给老师的感谢信
2015/01/20 职场文书
任命书怎么写
2015/03/02 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python