Python 如何在web2py中构建公开API
我试图构建另一个web服务调用的公开API,以便插入数据Python 如何在web2py中构建公开API,python,web2py,Python,Web2py,我试图构建另一个web服务调用的公开API,以便插入数据 Here is DB structure. Table name: bad_domain attributes are : domain(string) modified_by(string) cereated_by(string) risk(Boolean) 这是我在defauly.py中的代码 auth.settings.allow_basic_login = True @auth.requires_login() @reques
Here is DB structure.
Table name: bad_domain
attributes are :
domain(string)
modified_by(string)
cereated_by(string)
risk(Boolean)
这是我在defauly.py中的代码
auth.settings.allow_basic_login = True
@auth.requires_login()
@request.restful()
def api():
def POST(table_name,**vars):
return db[table_name].validate_and_insert(**vars)
return locals()
这是我的卷发
curl --user test@gmail.com:1234 http://127.0.0.1:8000/test/default/api/bad_domain.json {"content": [{"domain": “www.google.com”,”modified_by”:”test”, "created_by": "test", "risk": True}]}
卷曲不起作用
你知道怎么修吗
我是web2py的新手
谢谢。如果这是您的实际
curl
命令:
curl --user test@gmail.com:1234 http://127.0.0.1:8000/test/default/api/bad_domain.json {"content": [{"domain": “www.google.com”,”modified_by”:”test”, "created_by": "test", "risk": True}]}
那么你至少有五个问题:
--data
标志,因此curl
将它视为另一个URL,而不是要发送的数据curl
正确设置内容类型
“
这样的智能引号字符就JSON而言都不是引号,因此您将发送服务器将拒绝的垃圾True
不是有效的JSON值;您可能想要True
curl --user test@gmail.com:1234 http://127.0.0.1:8000/test/default/api/bad_domain.json --data '{"content": [{"domain": "www.google.com","modified_by":"test", "created_by": "test", "risk": true}]}' -H 'Content-Type: application/json'
至少这会向服务器发送一些合理的内容,其主体可以被
json.loads
解析。无论这是您真正想要发送的内容,还是您的代码能够处理它,我不知道,但至少应该让您开始。什么是“不起作用”的意思?您期望发生什么?发生了什么?(请向我们展示实际的错误消息或输出,而不仅仅是含糊不清的描述。)数据不会进入DBDoescurl
甚至不会运行并连接到服务器(您给我们的命令行不可能)如果是这样,服务器是否记录了任何内容?它是否向您的客户端返回了一些内容?此外,如果这是基于某个示例或框架,那么我们可以直接插入您的额外代码并运行它?如果不是,您能给我们一个完整的最小示例吗?