【问题标题】:How can I post data to the django database and to a CSV file如何将数据发布到 django 数据库和 CSV 文件
【发布时间】:2020-07-13 19:45:22
【问题描述】:

除了保存在 SQL 表中之外,我还试图从 Django 表单输入中获取输出 (csv/txt)

我的代码在这里

def booking_view(request):
    global form
    if request.method == 'POST':
        form = BookingForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            **WRITE TO A CSV FILE**
            form = BookingForm()
            return render(request, 'booking/sandpit.html', {'form': form})
           
    else:
        form = BookingForm()

    
    return render(request, 'booking/sandpit.html', {'form': form})

如何获取表单数据并保存为 CSV/TXT

提前致谢

【问题讨论】:

  • 您需要在此处填补一些缺失的空白: (1) 您将此文件保存到何处:在服务器上?在客户端浏览器的工作站上? (2) 当视图被第二次调用时会发生什么:它会破坏之前创建的文件吗?
  • 将文件保存在服务器上。再次调用视图很好,写入功能是追加。 # dict = form.cleaned_data # with open(OUTPUT_FILE, 'a') as f: # w = csv.writer(f) # w.writerow(dict.values()) # form = BookingForm() 并且它工作得非常好。谢谢

标签: python django csv


【解决方案1】:

由于您正在执行form.is_valid(),因此表单数据在字典cleaned_data 中处于可用状态。要访问这些数据,请调用

val1 = form.cleaned_data['fieldNameOne']
val2 = form.cleaned_data['fieldNameTwo']

使用这些值,您可以根据需要写入 csv。

【讨论】:

  • 谢谢 { dict = form.cleaned_data with open('Desktop\\output.txt', 'w') as f: w = csv.writer(f) w.writerow(dict.values ())}
【解决方案2】:

Python 有一个名为 csv 的内置模块,这可能是您可以使用的。

【讨论】:

  • 谢谢 - 了解 CSV 模块。我很好奇如何让 FORM 数据变为可用状态,然后可以使用这个模块
  • 如果你知道 csv 模块,那么你就知道它有 DictWriter 和 Django forms 101,教你验证数据是 form.cleaned_data 中的字典。 1 + 1 =2。
猜你喜欢
  • 2019-03-03
  • 1970-01-01
  • 2021-10-19
  • 2010-12-25
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-13
相关资源
最近更新 更多