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
|
||||
|
||||
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("/")
|
||||
async def root():
|
||||
return {"message": "Hello World"}
|
||||
|
||||
|
||||
@app.get("/hello/{name}")
|
||||
async def say_hello(name: str):
|
||||
return {"message": f"Hello {name}"}
|
||||
cnt = await RawData.all().count()
|
||||
# 生成一个范围内的随机整数,随机返回一篇文章
|
||||
r = randint(1, cnt)
|
||||
record = await RawData.get(id=r)
|
||||
return {"title": record.title, "content": record.content}
|
||||
|
||||
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