這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何在Django中使用外鍵,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的荔城網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!一、描述
在利用django做網(wǎng)絡(luò)開發(fā)的時(shí)候我們會(huì)遇到一個(gè)問題就是,我們建立了多張數(shù)據(jù)表,但是多張數(shù)據(jù)表中的內(nèi)容是不一樣的,但是之間有著聯(lián)系比如:
我有兩張表,一張是記錄歌曲信息的內(nèi)容,一張是對(duì)歌曲操作的內(nèi)容(下載次數(shù)瀏覽次數(shù)),如果我在views中對(duì)下載次數(shù)進(jìn)行一個(gè)排序,但是我不能只顯示下載次數(shù),我需要歌名的內(nèi)容,此時(shí)我們就需要外鍵來完成這個(gè)工作。
歌曲的操作次數(shù)
歌曲信息
二、解決
由于在django中都是使用models.py文件來管理數(shù)據(jù)庫(kù),再通過views.py進(jìn)行連接操作,最后用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è)置,第一個(gè)參數(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這個(gè)字段來聯(lián)系我們遇到的信息內(nèi)容,將dynamic_search和song的信息連在一起外接字段是song,也可以是其他的連接方式。
3.idnex.html:
{% for play_hot in play_hot_song %} {{ play_hot.song.song_name }}
{% endfor %}
在.html文件中我們使用了在views.py中的對(duì)象來引用了song當(dāng)中的信息,play_hot_song是在views.py中的字段名,進(jìn)行遍歷的是play_hot.song.song_name,play_hot是遍歷的參數(shù),song是接口的字段名,song_name是外接對(duì)象的內(nèi)容,這樣就可以將信息映射到網(wǎng)站中。
三、結(jié)果
上述就是小編為大家分享的如何在Django中使用外鍵了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。