首页 > 解决方案 > 在 Django 视图中执行 Python 脚本 [上传 CSV -> 批量地理编码 -> 通过脚本生成的 CSV 显示下载链接]

问题描述

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

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

  1. 上传 CSV
  2. 运行脚本
  3. 创建链接/使下载新创建的 CSV 成为可能

有没有人可以帮助我?

提前致谢并致以最诚挚的问候

编辑:这是我到现在为止的步骤和代码:

我几乎遵循以下教程: https ://docs.djangoproject.com/en/2.1/topics/http/file-uploads/

这是我的片段:

表格.py

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

视图.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})

网址.py

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

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

标签: pythondjangocsvgeocoding

解决方案


您可以在 django 项目的目录中拥有您的 python 脚本,并在文件上传后,按照此处所述执行 python 脚本


推荐阅读