【发布时间】:2019-09-11 04:21:36
【问题描述】:
我制定了一个下载 CSV 文件的逻辑,但现在我还想将其保存在数据库中。
我试过用文件名保存,但是不行
def index(request):
if request.method == "POST":
url = request.POST.get('url', '')
username = request.POST.get('username','')
r = requests.get(url)
soup = BeautifulSoup(r.content, features="lxml")
p_name = soup.find_all("h2",attrs={"class": "a-size-mini"})
p_price = soup.find_all("span",attrs={"class": "a-price-whole"})
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="product_file.csv"'
for name,price in zip(p_name,p_price):
writer = csv.writer(response)
writer.writerow([name.text, price.text])
return response
csv_file = csv.writer(response)
csv_save = csv_save(url=url,username=username,csv_file=csv_file)
csv_save.save
return render(request, 'index.html')
【问题讨论】:
-
你有错误的缩进,很难说如果你尝试在
return response之后运行代码,它将永远不会被执行。 -
@furas 那么将文件保存在数据库中并同时下载的可能方法是什么
-
使用
return作为最后一个命令,因为它结束了函数。 -
我这样做了,但是得到了这个错误“分配前引用了局部变量'csv_save'”你能告诉我一些代码我怎样才能完成这个任务
-
csv_save(...)是什么?你试图用你没有创建的这个函数做什么?或者它可能是数据库模型?你是在 Django 中创建这个模型的吗?