request.exceptions.ConnectionError: HTTPConnectionPool (host = '127.0.0.1', port = 8000): максимальное число повторов превышено с помощью url: / api / 1 / - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь установить связь между Django и Python файлом, но получаю сообщение об ошибке ниже:

reports.exceptions.ConnectionError: HTTPConnectionPool (host = '127.0.0.1', port= 8000): максимальное количество повторных попыток превышено с помощью url: / api / 1 / (вызвано NewConnectionError (': не удалось установить новое соединение: [WinError 10061] Соединение не может быть установлено, поскольку целевая машина активно от него отказалась'))

Я создал файл Python с именем test.py в приложении Django и пытаюсь установить связь между ними.Мой Pytho n файл содержит следующий код:

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)

MyViews.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()),
]

Получение ошибки, например:

reports.exceptions.ConnectionError:HTTPConnectionPool (host = '127.0.0.1', port = 8000): максимальное количество повторных попыток превышено с помощью url: / api / 1 / (вызвано NewConnectionError (': не удалось установить новое соединение: [WinError 10061]. Невозможно установить соединение, посколькуцелевая машина активно отказывалась '))

Пожалуйста, помогите мне.Спасибо, технари ....

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

У меня есть настоящая причина неудачи.Я запустил только py test.py только с 1 терминала для доступа к файлу python.В то время сервер не работал, поэтому связь не могла произойти.Затем я открыл отдельный терминал и запустил сервер Dev, и теперь мой файл Python может связываться с файлом Django.Теперь он работает нормально.

0 голосов
/ 06 мая 2019
    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()
...