溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Django中使用外鍵

發(fā)布時間:2021-03-24 16:24:44 來源:億速云 閱讀:187 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)如何在Django中使用外鍵,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、描述

在利用django做網(wǎng)絡(luò)開發(fā)的時候我們會遇到一個問題就是,我們建立了多張數(shù)據(jù)表,但是多張數(shù)據(jù)表中的內(nèi)容是不一樣的,但是之間有著聯(lián)系比如:

我有兩張表,一張是記錄歌曲信息的內(nèi)容,一張是對歌曲操作的內(nèi)容(下載次數(shù)瀏覽次數(shù)),如果我在views中對下載次數(shù)進行一個排序,但是我不能只顯示下載次數(shù),我需要歌名的內(nèi)容,此時我們就需要外鍵來完成這個工作。

歌曲的操作次數(shù)

如何在Django中使用外鍵

歌曲信息

如何在Django中使用外鍵

二、解決

由于在django中都是使用models.py文件來管理數(shù)據(jù)庫,再通過views.py進行連接操作,最后用urls.py來映射到網(wǎng)站

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')

就可以完成外鍵的設(shè)置,第一個參數(shù)就是類名,這樣就和歌曲信息關(guān)聯(lián)在一起了。

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())

根據(jù)上面的信息可以看到在search_song中利用了dynamic_search這個字段來聯(lián)系我們遇到的信息內(nèi)容,將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是遍歷的參數(shù),song是接口的字段名,song_name是外接對象的內(nèi)容,這樣就可以將信息映射到網(wǎng)站中。

三、結(jié)果

如何在Django中使用外鍵

上述就是小編為大家分享的如何在Django中使用外鍵了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI