python - 试图从我的本地服务器访问数据库

标签 python django server zoho

我想使用他们的 REST API ( https://www.zoho.com/creator/help/api/rest-api/rest-api-add-records.html ) 从 Zoho Creator 访问数据库我读到我不能从客户端这样做(因为 CORS 没有实现或类似的东西)而且我必须这样做它来自服务器。

所以我使用 django 设置了一个本地服务器,并从终端运行了一个脚本,该脚本应该向我的 zoho 数据库添加一条记录,但它不起作用...

我不确定是脚本错误还是我使用服务器的方式有误。

服务器由 django 运行,我使用命令“django-admin startproject mysite”创建了一个简单的服务器,并使用“python manage.py runserver”运行服务器。

应用程序的名称是“synonyms-database”,表单是“Main_Form”,唯一的字段是“name”。因此,根据这些信息,我遵循了 API 说明,这是我的脚本:

import requests

payload = {'authtoken': myAPIToken, 'scope': 'creatorapi', 'name': 'test'}
response = requests.request('POST', 
'https://creator.zoho.com/api/erik341/json/synonyms- 
database/form/Main_Form/record/add/', json=payload)

print(response.headers)
print(response.text)
print(response.url)

我得到了这样的回复:

<body>
    <div>
        An error has occurred. It has been reported to Zoho Creator 
        support. We will look into this issue .<br> Sorry for the 
        inconvenience caused.
        <p><p>
        Go to <a href='%2F'>Home</a>
    </div>
</body>

如果我使用 data=payload 而不是 json=payload,则响应更改为:

{"code":2945,"message":"INVALID_TICKET"}

最佳答案

API 需要表单编码数据,因此您应该使用 data=payload 而不是 json=payload。 URL中的json是响应格式,不是请求格式。

您可以通过重新生成 token 来解决 INVALID_TICKET 错误。 this post 有评论通过将 URL 从 .eu 更改为 .com 解决了错误。确保在与您的请求 URL 匹配的 URL 上生成身份验证 token 。

关于python - 试图从我的本地服务器访问数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49770636/

相关文章:

python - 如何在 Python 脚本中运行另一个 Python 脚本?

python - Django 以查询开始

python - gunicorn 状态处于事件状态(已退出)但显示未在 monit 中运行

server - Netty客户端与服务器连接,但服务器不触发channelActive/Registered

docker - Docker容器/图像之间的友好URL

python - 安装 Pandas : UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128)

python - Antelope Contiki-OS

python - 不同的缩进在python中没有错误

python - 找不到任何满足要求的下载 pypm==1.3.4

python - Matplotlib:如何仅设置抽动的最小值和最大值