如果以下提供的信息似乎不足,我事先表示歉意。
整个编程语言都是python。
我试图理解为数据库创建API的过程,该数据库可以被世界各地的任何人访问。就像一个具有正确主机名的API“ https://testing.org/api/someendpoint”一样,想要创建一个这样的API,而不是像“ http://localhost:5000/users”那样,如链接“ https://www.roytuts.com/python-rest-api-crud-example-using-flask-and-mysql/”中所述。认为我没有开发API的经验)
我也不知道是否需要在其他地方托管数据库(当前位置-本地计算机)来创建全局API。
那么我该如何从建立本地api链接变为全局api链接。
该数据库是具有单个表的普通数据库,该表包含名称,id,销售信息,时间等信息。
任何帮助将不胜感激。
答案 0 :(得分:0)
有两种工具可以使这项工作容易得多:
https://www.djangoproject.com/带有网络界面,管理员以及其他功能。最有用的是它具有ORM(https://en.wikipedia.org/wiki/Object-relational_mapping)-一种类似地处理数据库对象和python对象的方法。
您可能还会发现https://www.django-rest-framework.org/是一个有用的补充-它使Django的REST API成为可能。如果您的界面要求干净并且定义明确,那么您应该很快就可以开始使用。您不需要它就可以使Django具有REST接口-但这需要大量重复工作。
答案 1 :(得分:0)
我也不知道我是否需要托管数据库(当前位置- 本地计算机)创建全局API。
您可能想托管在云中,例如Google Appengine或Google Compute Engine。您可以使用Google Appengine做到这一点。
实施(您提到已经完成)可以通过许多方式来完成。如果您选择Google Appengine,则可以仅基于该手册中的示例编写代码。任何实施细节都可能取决于您的特定环境,但是您可能需要考虑我当前的方式。我只是从数据库中读取数据,然后将其输出为JSON。
示例:
cursor = mariadb_connection.cursor()
cursor.callproc('GetSomeDataYouWant') # Calling a stored procedure
thelist = []
for result in cursor.fetchall():
my_dict = {
"name": result[1],
"sales": result[2],
"info": result[3]
}
thelist.append(my_dict)
cursor.close()
mariadb_connection.close()
return get_success_response(thelist)
辅助功能:
def get_success_response(response):
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin' : '*' # Required for CORS support to work
},
'body': json.dumps(response)
}