2013-11-20 12 views
5

Manchmal, wenn ich an meinem Terminal sehen, ich die folgenden Fehler sehe, kann mir jemand bitte lassen Sie mich wissen, y es angezeigt wird und wie es zu vermeiden?Fehler: [Errno 32] Broken pipe django

Exception happened during processing of request from ('127.0.0.1', 39444) 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/SocketServer.py", line 582, in process_request_thread 
    self.finish_request(request, client_address) 
    File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request 
    self.RequestHandlerClass(request, client_address, self) 
    File "/home/comp/Envs/proj/local/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 150, in __init__ 
    super(WSGIRequestHandler, self).__init__(*args, **kwargs) 
    File "/usr/lib/python2.7/SocketServer.py", line 640, in __init__ 
    self.finish() 
    File "/usr/lib/python2.7/SocketServer.py", line 693, in finish 
    self.wfile.flush() 
    File "/usr/lib/python2.7/socket.py", line 303, in flush 
    self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 32] Broken pipe 
+1

Überprüfen Sie die am meisten gewählte Antwort http://stackoverflow.com/questions/7912672/django-broken-pipe-in-debug-mode – danielcorreia

Antwort

2

Dies kann daran liegen, dass Sie zwei Methoden zum Einfügen von Daten in die Datenbank verwenden, wodurch die Website langsamer wird.

def add_subscriber(request, email=None): 
    if request.method == 'POST': 
     email = request.POST['email_field'] 
     e = Subscriber.objects.create(email=email).save() <==== 
     return HttpResponseRedirect('/') 
    else: 
     return HttpResponseRedirect('/') 

z. Fehler in obiger Funktion ist, wo Pfeil die richtige Art und Weise zeigt oben zu implementieren ist

def add_subscriber(request, email=None): 
    if request.method == 'POST': 
     email = request.POST['email_field'] 
     e = Subscriber.objects.create(email=email) 
     return HttpResponseRedirect('/') 
    else: 
     return HttpResponseRedirect('/') 
3

Sie diesen Fehler zwei der folgenden Gründe zurückzuführen bekommen. Sie könnten das gleiche Problem aus anderen Gründen sehen

1-ich bin / am Ende Ihrer URL fehlt und Sie können es durch feste beheben, indem Sie fügte hinzu: „/“ bis zum Ende der URL Du

anfordern

2-Sie machen einige Anfragen dann schnell stoppen. Wie eine URL Aufruf dann den Anruf abgebrochen und eine andere URL aufrufen. Prüfen Sie, wo Sie Ihre Anrufe (JavaScript oder Backend) machen und sicherstellen, dass Sie die URL aufrufen, ohne zu stornieren.

+0

Dies bietet keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. –

+0

Hinzugefügt weitere Informationen. Ich hoffe, niemand bearbeitet meine Antwort. – Ahmed