Django?報(bào)錯(cuò):Broken?pipe?from?('127.0.0.1',?58924)的解決
問題
Django 報(bào)錯(cuò) [2019-09-16 16:47:27,981] - Broken pipe from ('127.0.0.1', 58924)
Broken pipe from xxx 這個(gè)錯(cuò)誤其實(shí)比較寬泛,比如運(yùn)算量太大、耗時(shí)太長(zhǎng)等,一定要結(jié)合實(shí)際情況分析問題。
1. admin 打開編輯頁報(bào)這個(gè)錯(cuò)
1.1 相關(guān)信息
我這次是在 admin 中遇到的。我有一個(gè)模型類 A 分別關(guān)聯(lián)了另外兩個(gè)模型類 B、C,而 B、C 中大概分別有 5、10萬數(shù)據(jù)。
A 表的 admin 我是這樣寫的:
@admin.register(A) class AAdmin(admin.ModelAdmin): ? ? list_display = ( ? ? ? ? 'b', 'c', ? ? ? ? 'is_valid', 'create_time', 'update_time', ? ? )
每次打開這個(gè)表的列表頁的時(shí)候是正常的,當(dāng)我要點(diǎn)擊某一個(gè)具體的數(shù)據(jù)進(jìn)入編輯頁的時(shí)候,就會(huì)報(bào)錯(cuò)。
1.2 確認(rèn)錯(cuò)誤
我先確認(rèn)這個(gè)錯(cuò)誤到底是不是這里的錯(cuò)誤
嘗試打開其他的表,都是正常的,只有在這個(gè)表時(shí)出錯(cuò),而且是百分百出錯(cuò)
然后看代碼,檢查模型類和 admin 代碼,也沒發(fā)現(xiàn)問題
不使用瀏覽器,改用 paw 訪問,大概等了 1 分鐘,出結(jié)果了,看到結(jié)果我也知道為什么了

看到這個(gè)樣子的數(shù)據(jù),我立刻就確認(rèn)這是外鍵選擇控件的數(shù)據(jù),再看右邊的滑塊下邊顯然還有很多,一下子想起這個(gè)外鍵表有很多數(shù)據(jù)。
原來問題在這里,admin 默認(rèn)的外鍵選擇控件是滑動(dòng)式的,十幾萬條數(shù)據(jù)就要生成十幾萬個(gè) HTML 標(biāo)簽,就慢在這里了。

改成放大鏡?樣式的就好了
@admin.register(A)
class AAdmin(admin.ModelAdmin):
list_display = (
'b', 'c',
'is_valid', 'create_time', 'update_time',
)
raw_id_fields = ('b', 'c')
這樣就能正常訪問了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python實(shí)現(xiàn)畫一個(gè)中國地圖
今天小編就為大家分享一篇使用Python實(shí)現(xiàn)畫一個(gè)中國地圖,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
淺談python 線程池threadpool之實(shí)現(xiàn)
這篇文章主要介紹了淺談python 線程池threadpool之實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化
這篇文章主要介紹了Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化,Matplotlib?是?Python?中常用的?2D?繪圖庫,它能輕松地將數(shù)據(jù)進(jìn)行可視化,作出精美的圖表2022-08-08
python numpy 反轉(zhuǎn) reverse示例
今天小編就為大家分享一篇python numpy 反轉(zhuǎn) reverse示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12
淺析Python中Generator的工作原理與應(yīng)用
這篇文章主要為大家詳細(xì)介紹了Python中Generator的工作原理與應(yīng)用的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編?一起學(xué)習(xí)一下2024-12-12
Python一行代碼實(shí)現(xiàn)打開各種類型的文件
在處理大量文件時(shí),手動(dòng)一個(gè)個(gè)打開是不是很麻煩,這時(shí)候,Python的os.startfile()就是你的救星啦,本文我們就來看看如何一行代碼打開各種類型的文件吧2024-12-12
Python中很常用的函數(shù)map()用法實(shí)例
這篇文章主要給大家介紹了關(guān)于Python中很常用的函數(shù)map()用法的相關(guān)資料,map()函數(shù)是Python的內(nèi)置函數(shù),會(huì)根據(jù)提供的函數(shù)參數(shù),對(duì)傳入的序列數(shù)據(jù)進(jìn)行映射,需要的朋友可以參考下2023-10-10
Django壓縮靜態(tài)文件的實(shí)現(xiàn)方法詳析
最近在學(xué)習(xí)Django配置靜態(tài)文件,下面這篇文章主要給大家介紹了關(guān)于Django壓縮靜態(tài)文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

