-1

![发票][1]

![python 脚本][2]

[1]:[2]:https ://i.stack.imgur.com/Y6Ebm.png

你好!如果有人能帮助我解决在 Django 中使用 Python 库的疑问,我将不胜感激。我会尽量说清楚,所以这里是:

在我的工作中,我使用的发票都保存在特定目录(PDF 文件)中,并且它们都具有相同的结构。在我的工作中,我只对一行中的一个特定值感兴趣,即数字。我的工作是从所有发票中提取该值并将它们全部汇总。因此,我制作了一个 python 脚本,在其中使用了 Pandas、os 和 PDFplumber 库,它运行良好。在 code.png 中,您可以看到我使用 PDFplumber 提取我想要的行和值的循环,然后对所有这些值求和。在 invoice.png 中,您可以看到 PDFplumber 如何将发票分成行和列。

所以,事情是这样的:我想部署一个 Django 应用程序,以便企业中的其他人可以使用我使用的 python 脚本(他们对 Python 编程一无所知)。所以,我想部署一个 Django 应用程序,他们可以在其中上传包含所有 PDF 文件的目录,然后使用我在 code.png 中显示的 python 脚本。但我对它背后的逻辑有疑问。我的问题是:

  1. 我们可以在 Django 中使用任何 python 库(例如 PDFplumber、pandas 等)吗?
  2. 我会把我的python脚本放在views.py中吗?(像这样的东西)

应用程序/views.py

import os
import pdfplumber
import pandas as pd
from django.shortcuts import render


def function(request):
    
    #Use the directory with the images uploaded by the user.
    #Python script shown in code.png
    # data = response obtained from the python script.
    return render(request, 'app/response.html',{"data":data})

预先感谢您!

4

2 回答 2

1

Django 只是另一个 Python 库,因此您绝对可以将其他库与 Django 一起使用。在views.py 中添加代码是一个很好的项目开始。views.py 的缺点是它会阻塞调用,直到收到响应。如果时间太长,您可能会遇到 HTTP 超时,因此可以探索其他解决方案,但我肯定会从 views.py 中的代码开始。

于 2021-04-22T18:11:02.557 回答
1

我们可以在 Django 中使用任何 python 库(例如 PDFplumber、pandas 等)吗?

是的,Django 应用程序只是 Python 代码。你可以添加任何你想要的 python 代码,包括import pandas或其他任何东西。

我会把我的python脚本放在views.py中吗?(像这样的东西)

虽然您可以按照您描述的方式编写代码,但我建议您更有逻辑地组织它。视图函数应该只处理请求并返回响应。任何业务逻辑,例如解析 PDF 文件,都应该在一个单独的文件中。以对您尝试完成的任务有意义的方式组织您的代码。

于 2021-04-22T18:31:39.850 回答