Files
elasticsearch/httpdemo/__init__.py
2023-04-13 09:46:37 +02:00

34 lines
1.0 KiB
Python

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from fastapi import Request
#from elasticsearch import Elasticsearch
import sys
import elastic_transport
from searching import es_search, es_query
import json
import yaml
app = FastAPI(debug=True)
templates = Jinja2Templates(directory="./httpdemo")
#app.mount("/", StaticFiles(directory="/"))
@app.get("/")
def serve_home(request: Request, q: str=""):
try:
resp = es_search(q)
query=es_query(q)
message = "found ...?"
except (elastic_transport.ConnectionError, elastic_transport.ConnectionTimeout) as e:
print(e,sys.stderr)
results=[]
resp={}
query={}
message = f"cannot reach the search server! : %s" % e
else:
results=resp["hits"]["hits"]
templates.env.filters["json"]=lambda x: yaml.dump(dict(x))
return templates.TemplateResponse("index.html", context= {
"request": resp,"results": results,"message": message, "query": query})