Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Flask按钮将列表列表下载到CSV文件_Python_Python 2.7_Csv_Flask - Fatal编程技术网

Python 使用Flask按钮将列表列表下载到CSV文件

Python 使用Flask按钮将列表列表下载到CSV文件,python,python-2.7,csv,flask,Python,Python 2.7,Csv,Flask,我正在用Flask构建一个非常简单的web界面。页面上有一个按钮,单击时应下载CSV文件。CSV的来源是列表的列表。当我点击按钮时,似乎什么也没发生 from flask import Flask import csv import StringIO from flask import make_response app = Flask(__name__) from requests import request @app.route('/') def landing(): retur

我正在用
Flask
构建一个非常简单的web界面。页面上有一个按钮,单击时应下载
CSV
文件。CSV的来源是列表的列表。当我点击按钮时,似乎什么也没发生

from flask import Flask
import csv
import StringIO
from flask import make_response
app = Flask(__name__)
from requests import request

@app.route('/')
def landing():
    return '<input type="submit" name="submit" value="Get Data">'


def data():
    if request.method == 'POST':
        if request.form['submit'] == 'Get Data':
            csvlist = [['item 1', 'item2'], ['box1', 'box2']]

            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

if __name__ == '__main__':
    app.run()
从烧瓶导入烧瓶
导入csv
导入StringIO
从flask import作出响应
app=烧瓶(名称)
从请求导入请求
@应用程序路径(“/”)
def landing():
返回“”
def data():
如果request.method==“POST”:
if request.form['submit']=“获取数据”:
csvlist=['item 1'、'item2']、['box1'、'box2']]
si=StringIO.StringIO()
cw=csv.writer(si)
cw.writerows(csvlist)
输出=作出响应(si.getvalue())
output.headers[“内容处置”]=“附件;文件名=export.csv”
output.headers[“内容类型”]=“文本/csv”
返回输出
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()

您的代码中有几个问题,其中一些是为什么您的按钮什么都不做

  • 您没有为按钮创建要提交到的表单
  • 您的
    数据
    功能没有
    路由
    ,因此无法通过表单帖子访问
  • 您需要使用
    flask request
    访问
    方法
    表单
    数据
  • 从烧瓶导入烧瓶,请求,做出响应
    导入csv
    导入StringIO
    app=烧瓶(名称)
    @应用程序路径(“/”)
    def landing():
    返回“”
    """
    @app.route('/data',methods=['POST'])
    def data():
    如果request.method==“POST”:
    if request.form['submit']=“获取数据”:
    csvlist=['item 1'、'item2']、['box1'、'box2']]
    si=StringIO.StringIO()
    cw=csv.writer(si)
    cw.writerows(csvlist)
    输出=作出响应(si.getvalue())
    output.headers[“内容处置”]=“附件;文件名=export.csv”
    output.headers[“内容类型”]=“文本/csv”
    返回输出
    如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
    app.run()
    
    from flask import Flask, request, make_response
    import csv
    import StringIO
    
    app = Flask(__name__)
    
    
    @app.route('/')
    def landing():
        return """<form action="data" method="post">
                <input type="submit" name="submit" value="Get Data">
             </form>"""
    
    
    @app.route('/data', methods=['POST'])
    def data():
        if request.method == 'POST':
            if request.form['submit'] == 'Get Data':
                csvlist = [['item 1', 'item2'], ['box1', 'box2']]
    
                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
    
    
    if __name__ == '__main__':
        app.run()