小编rag*_*ria的帖子

为什么 UVICORN/Starlette/FastAPI 在不使用“ASYNC”时会产生更多线程,而在使用“ASYNC”时却不会?

好的,所以我正在对 进行比较研究using ASYNC vs without using ASYNC in FastAPI。然而,我得到了一些意想不到的结果,并且不明白为什么。

这是设置 1:

不使用异步的 API

import uvicorn
from fastapi import FastAPI
import PIL.Image as Image
import requests
from loguru import logger
import sys

log_format = "{level} {process}-{thread} {time} {name}:{line} - {message}"
logger.remove()
logger.add(sys.stderr, format=log_format, backtrace=True, diagnose=True)
logger.add("logs/" + "t_{time}.log", format=log_format, colorize=True, backtrace=True, diagnose=True)

Image.MAX_IMAGE_PIXELS = None

def get_the_image_from_net():
    a = requests.get("https://eoimages.gsfc.nasa.gov/images/imagerecords/73000/73751/world.topo.bathy.200407.3x21600x21600.A1.jpg")
    return True


app = FastAPI()

@app.get("/expectoPatronum")
def get_image_of_the_new_world():
    """
    Gets Image of the World
    """
    logger.info("Received request for getting …
Run Code Online (Sandbox Code Playgroud)

python python-asyncio starlette fastapi uvicorn

5
推荐指数
1
解决办法
6772
查看次数

如何在 FastAPI 中访问端点视图函数内的 APP 属性?

这是我的项目结构:

\n
\xe2\x94\x82   .gitignore\n\xe2\x94\x82   README.md\n\xe2\x94\x82   requirements.txt\n\xe2\x94\x82   start.py\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x82   \xe2\x94\x82   main.py\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80apis\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80v1\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   __init__.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80routes\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   \xe2\x94\x82   evaluation_essentials.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   \xe2\x94\x82   training_essentials.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80models\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x82   request_response_models.py\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x82   __init__.py\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

这是最外面的样子start.py

\n
\xe2\x94\x82   .gitignore\n\xe2\x94\x82   README.md\n\xe2\x94\x82   requirements.txt\n\xe2\x94\x82   start.py\n\xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x82   \xe2\x94\x82   main.py\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80apis\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80v1\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   __init__.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80routes\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   \xe2\x94\x82   evaluation_essentials.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82   \xe2\x94\x82   training_essentials.py\n\xe2\x94\x82   \xe2\x94\x82       \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x82\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80models\n\xe2\x94\x82   \xe2\x94\x82 …
Run Code Online (Sandbox Code Playgroud)

python rest python-3.x fastapi

4
推荐指数
1
解决办法
4736
查看次数

如何仅在打开Modal时触发React Modal内部的API?

我正在我的组织中开发基于 REACT 的网络应用程序 POC。有一个问题表,对于每个问题,我必须在表中提供一个按钮,当用户单击该按钮时,它将打开一个模式,通过 API 调用获取该问题的数据,然后将数据广播到那个模态。

问题:假设我在该表中列出了 300 个问题,因此有 300 个可单击按钮用于打开模式和调用 API。现在的问题是,每当该表加载时,它都会立即调用所有 300 个问题的 API,但我希望每个 API 仅在用户单击相应按钮时调用!

这是迄今为止我管理的模态组件的代码:

import React, { FunctionComponent, useState, useEffect } from 'react'; // importing FunctionComponent
import { Modal, Button } from 'react-bootstrap';

type IssueReportProps = {
    issueInfo: any
}

const IssueReport: FunctionComponent<IssueReportProps> = ({ issueInfo }) => {
    const issueNumber: string = issueInfo.number;
    const [show, setShow] = useState(false);
    const [diagnosisInfo, setdiagnosisInfo] = useState({});
    const handleClose = () => setShow(false);
    const handleShow = () …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-bootstrap react-modal

1
推荐指数
1
解决办法
5773
查看次数

版本 &lt; 12 的 Oracle 查询兼容性问题

我有下面提到的 Oracle SQL 查询。它对于版本 > 12 运行得很好。但是对于版本 < 12,它给出的错误是SQL command not properly ended(错误代码:ORA-00933)。

询问:

select
    LEAST(ROUND(SUM((BLOCKS*BLOCK_SIZE)/1024/1024/1024)),200) GB, 
    to_char(COMPLETION_TIME,'MM.DD.YYYY') COMPLETION_DATE 
from 
    v$archived_log 
where 
    trunc(COMPLETION_TIME,'DD') > sysdate - 30 
group by to_char(COMPLETION_TIME,'MM.DD.YYYY') 
order by SUM((BLOCKS*BLOCK_SIZE)/1024/1024/1024) DESC 
FETCH FIRST 1 ROWS ONLY
Run Code Online (Sandbox Code Playgroud)

查询的作用:它获取过去 30 天的最大存档大小以及最大存档大小发生的日期。

我使用 cx_Oracle 通过 Python 运行此查询。

sql oracle cx-oracle

1
推荐指数
1
解决办法
45
查看次数