Django使dataframe在视图中可用,但只读取一次

dced5bon  于 2023-03-04  发布在  Go
关注(0)|答案(1)|浏览(101)

我尝试完成以下任务。我有一个简单的view,类似于以下内容

def view(request):
    df = pd.read_csv('t.csv')
    """
    Some code to parse parameters from request
    """
    y = parse_some_parameters(request)

    """ 
    Do something with df.
    """
    if request.method=="POST":
        x = do_something(df, y)
    return(JsonResponse(x))

利用当前的实现,每次调用view都涉及到读取文件。我希望避免这种情况。我希望在启动服务器时读取df一次,并使其在view中可用。我尝试读取settings.py文件中的df,但它在view中不可见。如何完成此操作?有可能吗?

yk9xbfzb

yk9xbfzb1#

你不能简单地在视图函数之外设置一个变量,如果还没有设置就加载它吗?

df = None

def view(request):
    global df
    if df is None:
        df = pd.read_csv('t.csv')

    """
    Some code to parse parameters from request
    """
    y = parse_some_parameters(request)

    """ 
    Do something with df.
    """
    if request.method=="POST":
        x = do_something(df, y)
    return(JsonResponse(x))

相关问题