在 Django 视图中执行 Python 脚本 [上传 CSV -> 批量地理编码 -> 显示 Link 以通过脚本生成的 CSV 下载]

Executing Python Script in Django View [Upload CSV -> Batch Geocoding -> Show Link to Download by script generated CSV]

我在 Google 搜索时发现了以下非常有用的脚本:https://github.com/shanealynn/python_batch_geocode/blob/master/python_batch_geocoding.py

这个脚本正是我所需要的,当我 运行 在我的本地计算机上运行时,它可以完美运行。 我有一个小型 Django 站点,我想在其中使用此脚本(非商业用途)。我不需要完整的代码示例(即使有人有示例代码,只是 post 它,我会通过它)而是需要采取的步骤来使用这样的脚本。最近几天我在谷歌上搜索了很多关于这个的内容,得到了很多不同的答案和不同的场景。不过,它们中没有一个真正完全适用于这种情况:

  1. 上传 CSV
  2. 运行 脚本
  3. 创建 Link/Make 可以下载新创建的 CSV

有没有人可以帮助我?

在此先致谢并致以最诚挚的问候

编辑: 以下是我到目前为止的步骤和代码:

我基本上遵循了以下教程: https://docs.djangoproject.com/en/2.1/topics/http/file-uploads/

这是我的片段:

forms.py

class UploadFileForm(forms.Form): title = forms.CharField(max_length=50) file = forms.FileField()

views.py

def geocode(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render(request, '../templates/data/geocode/index.html', {'form': form})

urls.py

urlpatterns = [
...
path('geocode', views.geocode, name='geocode')]

文件上传出现,我可以选择一个文件。这是我不知道该怎么做的步骤。我需要将它保存在我的数据库中还是我可以以某种方式将它加载到脚本中?

您可以将 python 脚本放在 django 项目的目录中,上传文件后,按照 here

所述执行 python 脚本