api完事了
This commit is contained in:
parent
37bab39059
commit
a0395015bb
35
.idea/dataSources.xml
Normal file
35
.idea/dataSources.xml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||||
|
<data-source source="LOCAL" name="db" uuid="31e8071e-b66f-4277-a55c-eb90ef3e7966">
|
||||||
|
<driver-ref>sqlite.xerial</driver-ref>
|
||||||
|
<synchronize>true</synchronize>
|
||||||
|
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
|
||||||
|
<jdbc-url>jdbc:sqlite:E:\pyprojects\PsycologyAPI\web_spider\db.sqlite3</jdbc-url>
|
||||||
|
<working-dir>$ProjectFileDir$</working-dir>
|
||||||
|
<libraries>
|
||||||
|
<library>
|
||||||
|
<url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar</url>
|
||||||
|
</library>
|
||||||
|
<library>
|
||||||
|
<url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar</url>
|
||||||
|
</library>
|
||||||
|
</libraries>
|
||||||
|
</data-source>
|
||||||
|
<data-source source="LOCAL" name="db [2]" uuid="42aa87a2-0dbb-43ab-81c6-8662da086691">
|
||||||
|
<driver-ref>sqlite.xerial</driver-ref>
|
||||||
|
<synchronize>true</synchronize>
|
||||||
|
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
|
||||||
|
<jdbc-url>jdbc:sqlite:E:\pyprojects\PsycologyAPI\db.sqlite3</jdbc-url>
|
||||||
|
<working-dir>$ProjectFileDir$</working-dir>
|
||||||
|
<libraries>
|
||||||
|
<library>
|
||||||
|
<url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/xerial/sqlite-jdbc/3.45.1.0/sqlite-jdbc-3.45.1.0.jar</url>
|
||||||
|
</library>
|
||||||
|
<library>
|
||||||
|
<url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.45.1/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar</url>
|
||||||
|
</library>
|
||||||
|
</libraries>
|
||||||
|
</data-source>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
14
.idea/deployment.xml
Normal file
14
.idea/deployment.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="PublishConfigData" serverName="ecs2" remoteFilesAllowedToDisappearOnAutoupload="false">
|
||||||
|
<serverData>
|
||||||
|
<paths name="ecs2">
|
||||||
|
<serverdata>
|
||||||
|
<mappings>
|
||||||
|
<mapping deploy="miniproj" local="$PROJECT_DIR$" web="/" />
|
||||||
|
</mappings>
|
||||||
|
</serverdata>
|
||||||
|
</paths>
|
||||||
|
</serverData>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
14
.idea/webServers.xml
Normal file
14
.idea/webServers.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="WebServers">
|
||||||
|
<option name="servers">
|
||||||
|
<webServer id="7dbab733-64f9-4346-9947-fc54341fa893" name="ecs2" url="http://xinli.heshunme.xyz">
|
||||||
|
<fileTransfer rootFolder="/root" accessType="SFTP" host="ecs2.heshunme.xyz" port="22" sshConfigId="f1f6e1a9-94a6-4cd9-ba1a-ad35f1bc3d3e" sshConfig="root@ecs2.heshunme.xyz:22 key" keyPair="true">
|
||||||
|
<advancedOptions>
|
||||||
|
<advancedOptions dataProtectionLevel="Private" passiveMode="true" shareSSLContext="true" />
|
||||||
|
</advancedOptions>
|
||||||
|
</fileTransfer>
|
||||||
|
</webServer>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
73
main.py
73
main.py
@ -1,13 +1,72 @@
|
|||||||
|
from random import randint
|
||||||
|
|
||||||
|
from fastapi import FastAPI
|
||||||
|
import os
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
from typing import AsyncGenerator
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
|
||||||
app = FastAPI()
|
from tortoise import Tortoise, generate_config
|
||||||
|
from tortoise.contrib.fastapi import RegisterTortoise
|
||||||
|
|
||||||
|
from models import RawData
|
||||||
|
|
||||||
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan_test(app: FastAPI) -> AsyncGenerator[None, None]:
|
||||||
|
config = generate_config(
|
||||||
|
"sqlite://:memory:",
|
||||||
|
app_modules={"models": ["models"]},
|
||||||
|
testing=True,
|
||||||
|
connection_label="models",
|
||||||
|
)
|
||||||
|
async with RegisterTortoise(
|
||||||
|
app=app,
|
||||||
|
config=config,
|
||||||
|
generate_schemas=True,
|
||||||
|
add_exception_handlers=True,
|
||||||
|
_create_db=True,
|
||||||
|
):
|
||||||
|
# db connected
|
||||||
|
yield
|
||||||
|
# app teardown
|
||||||
|
# db connections closed
|
||||||
|
await Tortoise._drop_databases()
|
||||||
|
|
||||||
|
|
||||||
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
|
||||||
|
if getattr(app.state, "testing", None):
|
||||||
|
async with lifespan_test(app) as _:
|
||||||
|
yield
|
||||||
|
else:
|
||||||
|
config = generate_config(
|
||||||
|
"sqlite:///db.sqlite3",
|
||||||
|
app_modules={"models": ["models"]},
|
||||||
|
connection_label="models",
|
||||||
|
)
|
||||||
|
async with RegisterTortoise(
|
||||||
|
app=app,
|
||||||
|
config=config,
|
||||||
|
generate_schemas=True,
|
||||||
|
add_exception_handlers=True,
|
||||||
|
_create_db=True,
|
||||||
|
):
|
||||||
|
# db connected
|
||||||
|
yield
|
||||||
|
# app teardown
|
||||||
|
# db connections closed
|
||||||
|
await Tortoise.close_connections()
|
||||||
|
|
||||||
|
|
||||||
|
app = FastAPI(lifespan=lifespan)
|
||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
async def root():
|
async def root():
|
||||||
return {"message": "Hello World"}
|
cnt = await RawData.all().count()
|
||||||
|
# 生成一个范围内的随机整数,随机返回一篇文章
|
||||||
|
r = randint(1, cnt)
|
||||||
@app.get("/hello/{name}")
|
record = await RawData.get(id=r)
|
||||||
async def say_hello(name: str):
|
return {"title": record.title, "content": record.content}
|
||||||
return {"message": f"Hello {name}"}
|
|
||||||
|
|||||||
12
requirements.txt
Normal file
12
requirements.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
beautifulsoup4~=4.12.3
|
||||||
|
Crawl4AI~=0.3.731
|
||||||
|
requests~=2.32.3
|
||||||
|
tortoise-orm~=0.21.7
|
||||||
|
|
||||||
|
toml~=0.10.2
|
||||||
|
httpx~=0.27.2
|
||||||
|
langchain~=0.3.7
|
||||||
|
|
||||||
|
websockets~=13.1
|
||||||
|
fastapi~=0.115.3
|
||||||
|
uvicorn~=0.20.0
|
||||||
Loading…
Reference in New Issue
Block a user