在 django 中不知道 ip 地址的情况下调用 api
Calling api without knowing ip address in django
我有一个post请求
http://localhost:8000/api/orders/shipment
我想做的是我不想传递 domain/ip 地址并访问 api 类似 Django 管理控制台的东西给“172.18.0.1 - - [08/Sep/2017 14:30:29] "POST /adminorder/order/import/ HTTP/1.1" 200 "
我在 django 文档中搜索了 get_absolute_url() 方法来定义自定义 url,我不知道如何在这种情况下使用它。
我认为不可能在请求中使用亲戚 url,但您可以通过创建一个将相关域添加到您的 url 前面的函数来解决这个问题。 (确保导入您的设置文件!)
from django.conf import settings
development_url = "http://localhost:8000/"
production_url = "http://myapisite.com/"
def create_url(relative_url):
# If you are on your development server. This is assuming your development always has DEBUG = True, and your production is always DEBUG = False
if settings.DEBUG:
return development_url + relative_url
# Production
return production_url + relative_url
因此 print(create_url("api/test/anothertest"))
将 return http://localhost:8000/api/test/anothertest
.
这就是您的使用方式:
url = create_url("api/orders/shipment/")
data = requests.post(url=url, data=content, headers = headers)
我有一个post请求
http://localhost:8000/api/orders/shipment
我想做的是我不想传递 domain/ip 地址并访问 api 类似 Django 管理控制台的东西给“172.18.0.1 - - [08/Sep/2017 14:30:29] "POST /adminorder/order/import/ HTTP/1.1" 200 "
我在 django 文档中搜索了 get_absolute_url() 方法来定义自定义 url,我不知道如何在这种情况下使用它。
我认为不可能在请求中使用亲戚 url,但您可以通过创建一个将相关域添加到您的 url 前面的函数来解决这个问题。 (确保导入您的设置文件!)
from django.conf import settings
development_url = "http://localhost:8000/"
production_url = "http://myapisite.com/"
def create_url(relative_url):
# If you are on your development server. This is assuming your development always has DEBUG = True, and your production is always DEBUG = False
if settings.DEBUG:
return development_url + relative_url
# Production
return production_url + relative_url
因此 print(create_url("api/test/anothertest"))
将 return http://localhost:8000/api/test/anothertest
.
这就是您的使用方式:
url = create_url("api/orders/shipment/")
data = requests.post(url=url, data=content, headers = headers)