requests.exceptions.ConnectionError:HTTPConnectionPool(host ='127.0.0.1',port = 8000):URL超过最大重试次数:/ api / 1 /

时间:2019-05-06 18:04:45

标签: python django api django-rest-framework

我正在尝试在Django和Python文件之间进行通信,但出现以下错误:-

requests.exceptions.ConnectionError:HTTPConnectionPool(host ='127.0.0.1',port = 8000):url:/ api / 1 /超过了最大重试次数(由NewConnectionError(':导致无法建立新连接:[ WinError 10061]无法建立连接,因为目标计算机主动拒绝了它'))

我在Django应用中创建了一个名为test.py的Python文件,并尝试在它们之间进行通信。我的Python文件包含以下代码:-

import requests
BASE_URL='http://127.0.0.1:8000/'
ENDPOINT='api/'
def get_resource(id):
    resp=requests.get(BASE_URL+ENDPOINT+id+'/')
    print(resp.status_code)
    print(resp.json()) 
id=input("Enter some ID: ")
get_resource(id)

Models.py包含:-

from django.db import models

# Create your models here.
class Employee(models.Model):
    eno=models.IntegerField()
    ename=models.CharField(max_length=70)
    esal=models.FloatField()
    eaddr=models.CharField(max_length=100)

Admin.py包含:-

from django.contrib import admin
from testapp.models import Employee
# Register your models here.
class EmployeeAdmin(admin.ModelAdmin):
    list_display=  ['id','eno','ename','esal','eaddr']

admin.site.register(Employee,EmployeeAdmin)

我的views.py包含:-

from django.shortcuts import render
from django.views.generic import View
from testapp.models import Employee
import json
from django.http import HttpResponse


class EmployeeDetailCBV(View):
def get(self,request,id,*args,**kwargs):
    emp = Employee.objects.get(id=id)  
    emp_data = {'eno':emp.eno , 'ename':emp.ename , 'esal':emp.esal , 'eaddr':emp.eaddr} 
    json_data=json.dumps(emp_data)
    return HttpResponse(json_data , content_type='application/json')

urls.py文件包含:-

from django.contrib import admin
from django.urls import path
from testapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/(?P<id>\d+)/$', views.EmployeeDetailCBV.as_view()),
]

出现类似的错误, requests.exceptions.ConnectionError:HTTPConnectionPool(host ='127.0.0.1',端口= 8000):url超过了最大重试次数:/ api / 1 /(由NewConnectionError(':导致:无法建立新连接:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它'))

请帮助我。谢谢技术人员。...

4 个答案:

答案 0 :(得分:0)

    import requests

    # BASE_URL='http://127.0.0.8000' <<< Url with port malformed
    BASE_URL='http://127.0.0.1:8000'
    ENDPOINT='api/'
    def get_resource():
        # resp=requests.get(BASE_URL+ENDPOINT)  <<< Request url malformed
        resp=requests.get(BASE_URL+"/"+ENDPOINT)
        print(resp.status_code)
        print(resp.json())
    get_resource()

答案 1 :(得分:0)

我有失败的真正原因。我只从1个终端运行py test.py来访问python文件。当时服务器未运行,因此无法进行通信。 然后,我打开一个单独的终端并运行Dev服务器,现在我的Python文件能够与Django文件通信。 现在运行正常。

答案 2 :(得分:0)

遇到类似问题,更改端口号即可解决问题。

答案 3 :(得分:0)

请检查您的端口一次 就我而言,我遇到了端口问题,我使用了端口 8525,而不是浏览 8525,而是使用 8000 浏览了