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

看到這個(gè)樣子的數(shù)據(jù),我立刻就確認(rèn)這是外鍵選擇控件的數(shù)據(jù),再看右邊的滑塊下邊顯然還有很多,一下子想起這個(gè)外鍵表有很多數(shù)據(jù)。
原來(lái)問(wèn)題在這里,admin 默認(rèn)的外鍵選擇控件是滑動(dòng)式的,十幾萬(wàn)條數(shù)據(jù)就要生成十幾萬(wàn)個(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')
這樣就能正常訪問(wèn)了。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)對(duì)csv文件的列的內(nèi)容讀取
今天小編就為大家分享一篇python實(shí)現(xiàn)對(duì)csv文件的列的內(nèi)容讀取,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Opencv-Python圖像透視變換cv2.warpPerspective的示例
今天小編就為大家分享一篇關(guān)于Opencv-Python圖像透視變換cv2.warpPerspective的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
python實(shí)現(xiàn)多線(xiàn)程端口掃描
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)多線(xiàn)程端口掃描,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
python3+PyQt5 實(shí)現(xiàn)Rich文本的行編輯方法
今天小編就為大家分享一篇python3+PyQt5 實(shí)現(xiàn)Rich文本的行編輯方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
python開(kāi)啟多個(gè)子進(jìn)程并行運(yùn)行的方法
這篇文章主要介紹了python開(kāi)啟多個(gè)子進(jìn)程并行運(yùn)行的方法,涉及Python進(jìn)程操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04

