HuangHai 2 weeks ago
commit 5561da6d94

@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4"> <module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" /> <content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="D:\anaconda3\envs\py310" jdkType="Python SDK" /> <orderEntry type="jdk" jdkName="Python 3.10 (6)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="PyDocumentationSettings"> <component name="PyDocumentationSettings">

@ -3,5 +3,5 @@
<component name="Black"> <component name="Black">
<option name="sdkName" value="D:\anaconda3\envs\lightrag" /> <option name="sdkName" value="D:\anaconda3\envs\lightrag" />
</component> </component>
<component name="ProjectRootManager" version="2" project-jdk-name="D:\anaconda3\envs\py310" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (6)" project-jdk-type="Python SDK" />
</project> </project>

@ -147,8 +147,8 @@ async def get_tree_data():
try: try:
pg_pool = await init_postgres_pool() pg_pool = await init_postgres_pool()
async with pg_pool.acquire() as conn: async with pg_pool.acquire() as conn:
async with conn.cursor() as cur: # 执行查询
await cur.execute(""" rows = await conn.fetch("""
SELECT id, SELECT id,
title, title,
parent_id, parent_id,
@ -158,8 +158,6 @@ async def get_tree_data():
FROM knowledge_points FROM knowledge_points
ORDER BY parent_id, id ORDER BY parent_id, id
""") """)
rows = await cur.fetchall()
# 构建节点映射 # 构建节点映射
nodes = {} nodes = {}
for row in rows: for row in rows:
@ -214,28 +212,29 @@ async def update_knowledge(request: fastapi.Request):
pg_pool = await init_postgres_pool() pg_pool = await init_postgres_pool()
async with pg_pool.acquire() as conn: async with pg_pool.acquire() as conn:
async with conn.cursor() as cur: if update_type == 'prerequisite':
if update_type == 'prerequisite': await conn.execute("""
await cur.execute( UPDATE knowledge_points
""" SET prerequisite = $1
UPDATE knowledge_points WHERE id = $2
SET prerequisite = %s """,
WHERE id = %s json.dumps(
""", [{"id": p["id"], "title": p["title"]} for p in knowledge],
(json.dumps([{"id": p["id"], "title": p["title"]} for p in knowledge], ensure_ascii=False), ensure_ascii=False
node_id) ),
) node_id)
else: # related knowledge else: # related knowledge
await cur.execute( await conn.execute("""
""" UPDATE knowledge_points
UPDATE knowledge_points SET related = $1
SET related = %s WHERE id = $2
WHERE id = %s """,
""", json.dumps(
(json.dumps([{"id": p["id"], "title": p["title"]} for p in knowledge], ensure_ascii=False), [{"id": p["id"], "title": p["title"]} for p in knowledge],
node_id) ensure_ascii=False
) ),
await conn.commit() node_id)
return {"code": 0, "msg": "更新成功"} return {"code": 0, "msg": "更新成功"}
except Exception as e: except Exception as e:

@ -20,3 +20,48 @@ POSTGRES_CONFIG = {
# 初始化 PostgreSQL 连接池 # 初始化 PostgreSQL 连接池
async def init_postgres_pool(): async def init_postgres_pool():
return await asyncpg.create_pool(**POSTGRES_CONFIG) return await asyncpg.create_pool(**POSTGRES_CONFIG)
# 查询示例
async def query_example(pool):
async with pool.acquire() as conn:
# 执行查询
rows = await conn.fetch('SELECT * FROM your_table LIMIT 10')
# 处理结果
for row in rows:
print(dict(row))
return rows
# 插入示例
async def insert_example(pool, data):
async with pool.acquire() as conn:
# 执行插入
stmt = """
INSERT INTO your_table (column1, column2)
VALUES ($1, $2)
"""
# 使用参数化查询防止SQL注入
inserted_id = await conn.fetchval(stmt, data['value1'], data['value2'])
print(f"插入成功!")
return inserted_id
# 使用示例
async def main():
pool = await init_postgres_pool()
# 查询示例
await query_example(pool)
# 插入示例
#data_to_insert = {'value1': 'test1', 'value2': 'test2'}
#await insert_example(pool, data_to_insert)
await pool.close()
if __name__ == '__main__':
import asyncio
asyncio.run(main())
Loading…
Cancel
Save