38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import json
|
|
|
|
import aioch
|
|
import pandas as pd
|
|
from fastapi import APIRouter, Depends, Request
|
|
import crud, schemas
|
|
|
|
from api import deps
|
|
from db.ckdb import get_ck_db
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post("/sql")
|
|
async def query_sql(
|
|
request: Request,
|
|
data_in: schemas.Sql,
|
|
ckdb: aioch.Client = Depends(get_ck_db),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
"""原 sql 查询 """
|
|
data, columns = await ckdb.execute(data_in.sql, with_column_types=True, columnar=True)
|
|
df = pd.DataFrame({col[0]: d for d, col in zip(data, columns)})
|
|
return schemas.Msg(code=0, msg='ok', data=df.to_dict())
|
|
|
|
|
|
@router.post("/query")
|
|
async def query(
|
|
request: Request,
|
|
data_in: schemas.CkQuery,
|
|
ckdb: aioch.Client = Depends(get_ck_db),
|
|
current_user: schemas.UserDB = Depends(deps.get_current_user)
|
|
) -> schemas.Msg:
|
|
""" json解析 sql 查询"""
|
|
# data, columns = await ckdb.execute(data_in.sql, with_column_types=True, columnar=True)
|
|
# df = pd.DataFrame({col[0]: d for d, col in zip(data, columns)})
|
|
return schemas.Msg(code=0, msg='ok', data=data_in)
|