【发布时间】:2019-09-24 09:19:50
【问题描述】:
我正在尝试在 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', port=8000): 最大重试次数超过 url: /api/1/ (由 NewConnectionError(': 无法建立新连接: [ WinError 10061] 由于目标机器主动拒绝,无法建立连接'))
请帮助我。谢谢技术人员....
【问题讨论】:
-
您在 URL 中遗漏了一个斜杠。
-
127.0.0.8000api != 127.0.0:80/api/
标签: python django api django-rest-framework