from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
import flet as ft
import flet.fastapi as flet_fastapi
app = FastAPI()
async def root_main(page: ft.Page):
page.add(ft.Text("This is root app!"))
@app.get("/data")
async def read_root():
with open("index_data.html", "r") as file:
html_content = file.read()
return HTMLResponse(content=html_content, status_code=200)
@app.post("/get_data")
async def send_name(request: Request):
data = await request.json()
if __name__ == "__main__":
import uvicorn
app.mount('/', flet_fastapi.app(root_main))
uvicorn.run(app, host="0.0.0.0", port=25022)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="https://telegram.org/js/telegram-web-app.js"></script>
<script>
let tg = window.Telegram.WebApp;
let user_id = tg.initDataUnsafe.user.username;
let colorScheme = tg.colorScheme;
// Отправка name и colorScheme на сервер FastAPI
fetch('/get_data', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_id: user_id,
colorScheme: colorScheme
})
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
// Вызов метода close()
</script>
</body>
</html>
Не могу понять как при заходе в MiniApp показать по корню само приложение и в нем получить данные которые получаются за счет @app.get("/data") и @app.post("/get_data")