Archived
fix:修复了查询全部数据时Internal Server Error的bug
This commit is contained in:
3 files changed
+43
-59
No files matched your search
+35
-15
@@ -67,11 +67,11 @@ class MySQL(BaseSQL):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
_CONFIG = Config.database.split('@')
|
_CONFIG = Config.database.split('@')
|
||||||
user = _CONFIG[0].split(':')[0]
|
user = _CONFIG[0].split(":")[0]
|
||||||
pwd = _CONFIG[0].split(':')[1]
|
pwd = _CONFIG[0].split(":")[1]
|
||||||
host = _CONFIG[1].split(':')[0]
|
host = _CONFIG[1].split(":")[0]
|
||||||
port = int(_CONFIG[1].split(':')[1].split('/')[0])
|
port = int(_CONFIG[1].split(":")[1].split("/")[0])
|
||||||
db = _CONFIG[1].split('/')[1]
|
db = _CONFIG[1].split("/")[1]
|
||||||
|
|
||||||
self.conn = operator.connect(user=user,
|
self.conn = operator.connect(user=user,
|
||||||
passwd=pwd,
|
passwd=pwd,
|
||||||
@@ -84,34 +84,41 @@ class MySQL(BaseSQL):
|
|||||||
class DetaBase:
|
class DetaBase:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.__deta = Deta(os.getenv("PJ_DETA"))
|
self.__deta = Deta(os.getenv("PJ_DETA"))
|
||||||
self.__data = self.__deta.Base("times")
|
self.__data = self.__deta.AsyncBase("times")
|
||||||
self.__image = self.__deta.Base("images")
|
self.__image = self.__deta.AsyncBase("images")
|
||||||
|
|
||||||
async def __get(self, _id: str) -> tuple:
|
async def __get(self, _id: str) -> tuple:
|
||||||
result = self.__data.get(_id)
|
result = await self.__data.get(_id)
|
||||||
if result is None:
|
if result is None:
|
||||||
await self.__put_data(_id)
|
await self.__put_data(_id)
|
||||||
return tuple([_id, 0])
|
return tuple([_id, 0])
|
||||||
await self.update(_id, result["times"])
|
await self.update(_id, result["times"])
|
||||||
|
await self.__image.close()
|
||||||
|
await self.__data.close()
|
||||||
return tuple([_id, result["times"]])
|
return tuple([_id, result["times"]])
|
||||||
|
|
||||||
async def __put_data(self, _id: str) -> bool:
|
async def __put_data(self, _id: str) -> bool:
|
||||||
self.__data.put({"times": 0}, _id)
|
await self.__data.put({"times": 0}, _id)
|
||||||
|
await self.__image.close()
|
||||||
|
await self.__data.close()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def __update_data(self, _id: str, times: int) -> bool:
|
async def __update_data(self, _id: str, times: int) -> bool:
|
||||||
new = {"times": times + 1}
|
new = {"times": times + 1}
|
||||||
self.__data.update(new, _id)
|
await self.__data.update(new, _id)
|
||||||
|
await self.__image.close()
|
||||||
|
await self.__data.close()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def __insert_data(self, _id: str) -> bool:
|
async def __insert_data(self, _id: str) -> bool:
|
||||||
await self.__put_data(_id)
|
await self.__put_data(_id)
|
||||||
|
await self.__image.close()
|
||||||
|
await self.__data.close()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
async def __get_images(self, theme: str) -> list:
|
async def __get_images(self, theme: str) -> list:
|
||||||
response = []
|
response = []
|
||||||
result = self.__image.get(theme)
|
result = await self.__image.get(theme)
|
||||||
try:
|
|
||||||
for i in result:
|
for i in result:
|
||||||
if i != "key":
|
if i != "key":
|
||||||
response.append(tuple([
|
response.append(tuple([
|
||||||
@@ -120,8 +127,8 @@ class DetaBase:
|
|||||||
result[i]["width"],
|
result[i]["width"],
|
||||||
result[i]["height"]
|
result[i]["height"]
|
||||||
]))
|
]))
|
||||||
except TypeError:
|
await self.__image.close()
|
||||||
return []
|
await self.__data.close()
|
||||||
return response
|
return response
|
||||||
|
|
||||||
async def query(self, _id: str) -> tuple:
|
async def query(self, _id: str) -> tuple:
|
||||||
@@ -137,7 +144,20 @@ class DetaBase:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
async def query_all(self) -> list:
|
async def query_all(self) -> list:
|
||||||
pass
|
res = await self.__data.fetch()
|
||||||
|
all_items = res.items
|
||||||
|
while res.last:
|
||||||
|
res = await self.__data.fetch(last=res.last)
|
||||||
|
all_items += res.items
|
||||||
|
await self.__image.close()
|
||||||
|
await self.__data.close()
|
||||||
|
result = []
|
||||||
|
for i in all_items:
|
||||||
|
result.append((
|
||||||
|
i["key"],
|
||||||
|
i["times"]
|
||||||
|
))
|
||||||
|
return result
|
||||||
|
|
||||||
async def query_image(self, theme: str) -> list:
|
async def query_image(self, theme: str) -> list:
|
||||||
result = await self.__get_images(theme)
|
result = await self.__get_images(theme)
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
GET http://localhost:8000/api/query-theme/blacked
|
|
||||||
Accept: application/json
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
GET http://localhost:8000/api/query-theme/lisu
|
|
||||||
Accept: application/json
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
GET http://localhost:8000/api/query-theme/moebooru
|
|
||||||
Accept: application/json
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
GET http://localhost:8000/api/query-theme/lewd
|
|
||||||
Accept: application/json
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
GET http://localhost:8000/api/query/test
|
|
||||||
Accept: application/json
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
# -- coding:utf-8 --
|
|
||||||
# @Author: markushammered@gmail.com
|
|
||||||
# @Development Tool: PyCharm
|
|
||||||
# @Create Time: 2022/8/30
|
|
||||||
# @File Name: __init__.py
|
|
||||||
|
|
||||||
|
|
||||||
__all__ = []
|
|
||||||
Reference in New Issue
Block a user