python requests.exceptions.ConnectionError:HTTP连接池(主机="127.0.0.1",端口= 8000):URL超过最大重试次数:/API/1/

iyfjxgzm  于 2023-02-07  发布在  Python
关注(0)|答案(6)|浏览(851)

我尝试在DjangoPython文件之间进行通信,但出现以下错误:
requests.exceptions.ConnectionError:HTTP连接池(主机="127.0.0.1",端口= 8000):URL超过最大重试次数:/api/1/(由新连接错误(':无法建立新连接:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了该连接'))
我在Django应用程序中创建了一个名为test.py的Python文件,并尝试在它们之间进行通信。我的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)

我的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:HTTP连接池(主机="127.0.0.1",端口= 8000):URL超过最大重试次数:/api/1/(由新连接错误(':无法建立新连接:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了该连接'))
请帮帮我。谢谢你的技术人员....

flseospp

flseospp1#

我找到了失败的真实的原因。我只test.py在一个终端上运行py www.example.com来访问python文件。当时服务器没有运行所以无法通信。然后我打开了一个单独的终端并运行了Dev服务器,现在我的Python文件可以和Django文件通信了。现在它运行得很好。

blmhpbnm

blmhpbnm2#

试试这个:

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()
v7pvogib

v7pvogib3#

要在本地启动代码,请使用固定的IPv4地址。
对于Windows用户:打开命令提示符(cmd)并运行ipconfig命令,检索IPv4 address. . . . . . . . . . . . . .中的IP@:其通常为192.168.x.x
命令提示符中的IPv4地址
然后转到您的settings.py并添加:ALLOWED_HOSTS = ['*']

rvpgvaaj

rvpgvaaj4#

面对类似问题,更改端口号解决了问题。

lx0bsm1f

lx0bsm1f5#

请检查您的端口一次在我的情况下我有端口问题我用端口8525,而不是浏览8525我用8000浏览

0sgqnhkj

0sgqnhkj6#

您只需要打开单独的终端并运行python代码和

确保服务器在此时正在运行

相关问题