当前位置: 首页 > 面试题库 >

从Flask框架编写CSV

别锐
2023-03-14
问题内容

我在Flask框架之外编写CSV没问题。但是,当我尝试从Flask编写它时,它会写入CSV,但只能写在一行上。

这是我关注的模板

@app.route('/download')
def download():
    csv = """"REVIEW_DATE","AUTHOR","ISBN","DISCOUNTED_PRICE"
"1985/01/21","Douglas Adams",0345391802,5.95
"1990/01/12","Douglas Hofstadter",0465026567,9.95
"1998/07/15","Timothy ""The Parser"" Campbell",0968411304,18.99
"1999/12/03","Richard Friedman",0060630353,5.95
"2004/10/04","Randel Helms",0879755725,4.50"""
    response = make_response(csv)
    response.headers["Content-Disposition"] = "attachment; filename=books.csv"
    return response

这样可以完美地编写CSV,但是当我尝试使用代码时,会得到一长行。

我的代码:

@app.route('/download')
def post(self):

    # lots of code

    csvList.append([all,my,data,goes,here])

    csvList = str(re.sub('\[|\]','',str(csvList)))  # convert to a string; remove brackets

    response = make_response(csvList)
    response.headers['Content-Disposition'] = "attachment; filename=myCSV.csv"
    return response

我的输出:

Nashville Physician Service Ce,Treasury Specialist,Brentwood,TN,(615) 507-1646,La Petite Academy,Afternoon Teacher Aide,Goodlettsville,TN,(615) 859-2034,Nashville Physician Service Ce,Denial Resolution Specialist,Brentwood,TN,(615) 507-1646

谢谢。

编辑:我几乎尝试了所有答案,并且它们大部分都起作用,但是我选择了vectorfrog,因为它与我要完成的任务相吻合。


问题答案:

我最近做了类似的事情,发现我需要先将csv放入StringIO,然后返回StringIO。如果要csv下载,这是我所做的:

import StringIO
import csv
from flask import make_response

@app.route('/download')
def post(self):
    si = StringIO.StringIO()
    cw = csv.writer(si)
    cw.writerows(csvList)
    output = make_response(si.getvalue())
    output.headers["Content-Disposition"] = "attachment; filename=export.csv"
    output.headers["Content-type"] = "text/csv"
    return output


 类似资料:
  • PyCharm支持Flask框架开发。 通过欢迎屏幕创建新项目,您可以轻松创建新的Flask项目。 可以设置项目的位置和虚拟环境,并选择模板语言以及模板的位置。 可以使用 Run - > Run’ ‘ 来运行项目。 也可以用这个框架添加一个新的数据源。创建一个名为的文件并添加SQL代码来创建一些表。 PyCharm编辑器会识别这些文件并要求您配置数据源并设置为数据库方言。 PyCharm会要求您选

  • 在正式开始Web开发前,我们需要编写一个Web框架。 为什么不选择一个现成的Web框架而是自己从头开发呢?我们来考察一下现有的流行的Web框架: Django:一站式开发框架,但不利于定制化; web.py:使用类而不是更简单的函数来处理URL,并且URL映射是单独配置的; Flask:使用@decorator的URL路由不错,但框架对应用程序的代码入侵太强; bottle:缺少根据URL模式进行

  • 在正式开始Web开发前,我们需要编写一个Web框架。 aiohttp已经是一个Web框架了,为什么我们还需要自己封装一个? 原因是从使用者的角度来说,aiohttp相对比较底层,编写一个URL的处理函数需要这么几步: 第一步,编写一个用@asyncio.coroutine装饰的函数: @asyncio.coroutine def handle_url_xxx(request): pass

  • 问题内容: Flask框架自然支持MVC模式吗?我应该将应用程序的哪一部分视为模型,将什么视为视图,将什么视为控制器? 通常(以我的经验),Flask应用程序如下所示: 问题答案: Flask实际上不是MVC框架。它是一个简约的框架,可让你在构建应用程序的方式上有很多自由,但是MVC模式非常适合Flask提供的功能。 本质上,你可以编写方法并将其映射到特定的路线,例如: 如你所见,那里没有视图或模

  • 本文向大家介绍利用python实现后端写网页(flask框架),包括了利用python实现后端写网页(flask框架)的使用技巧和注意事项,需要的朋友参考一下 如何用python做后端写网页-flask框架 什么是Flask安装flask模块Hello World更深一步:数据绑定后端传入数据从前端获取数据 数据库连接screen创建后台查看删除后台 结束 什么是Flask Flask是一个使用

  • 本文向大家介绍在Django框架中编写Contact表单的教程,包括了在Django框架中编写Contact表单的教程的使用技巧和注意事项,需要的朋友参考一下 虽然我们一直使用书籍搜索的示例表单,并将起改进的很完美,但是这还是相当的简陋: 只包含一个字段,q。这简单的例子,我们不需要使用Django表单库来处理。 但是复杂一点的表单就需要多方面的处理,我们现在来一下一个较为复杂的例子: 站点联系表