【问题标题】:Mysql data to be save as CSV/Excel using flask-python when button click单击按钮时使用flask-python将Mysql数据保存为CSV/Excel
【发布时间】:2015-01-03 22:57:24
【问题描述】:

我是导出数据的新手,我在网上进行了研究,但我真的很难理解,有人可以帮助我了解它的基本知识。

这是我的主要问题:我想根据我在客户端中选择的日期范围从 mysql 下载特定数据,然后当我单击下载按钮时,我希望将这些来自 mysql 的数据一起保存在我的计算机中用户可以选择将其保存为 CSV/Excel,我将 python 用于我的网络服务。谢谢

这是我在我的网络服务中正确知道的代码:

@api.route('/export_file/', methods=['GET', 'POST'])
def export_file():

    if request.method == 'POST':
        selectAttendance = """SELECT * FROM attendance"""
        db.session.execute(selectAttendance)
        db.session.commit()


        f = csv.writer(open("file.csv", "w"))
        for row in selectAttendance:
            f.writerow([str(row)])





    return jsonify({'success': True})

【问题讨论】:

  • 您应该告诉我们您正在使用哪个网络框架。我假设这是烧瓶。
  • 对不起,我忘了包括它,是的,我正在使用烧瓶,我现在编辑我的标题

标签: python mysql csv flask export


【解决方案1】:

一般:

  1. 将 http 标头的 mime 标头“Content-Type”部分设置为与您的数据匹配的相应 MIME-Type。 这告诉浏览器网络服务器要发送什么类型的数据。
  2. 在'body'中发送实际数据

带烧瓶:

Forcing application/json MIME type in a view (Flask)

http://flask.pocoo.org/docs/0.10/patterns/streaming/

【讨论】:

  • 您好,谢谢。它对我有很大帮助,尤其是内容标题。我现在可以保存我的数据了。再次感谢。
【解决方案2】:
def get(self):
    try:
        os.stat(BACKUP_PATH)
    except:
        os.mkdir(BACKUP_PATH)
    now = datetime.now() # current date and time
    year = now.strftime("%Y")
    month = now.strftime("%m")
    day = now.strftime("%d")
    time = now.strftime("%H:%M:%S")
    date_time = now.strftime("%d_%m_%Y_%H:%M:%S")
    TODAYBACKUPPATH = BACKUP_PATH + '/' + date_time

    try:
        os.stat(TODAYBACKUPPATH)
    except:
        os.mkdir(TODAYBACKUPPATH)
    print ("checking for databases names file.")

    if os.path.exists(DB_NAME):
        file1 = open(DB_NAME)
        multi = 1
        print ("Databases file found...")
        print ("Starting backup of all dbs listed in file " + DB_NAME)
    else:
        print ("Databases file not found...")
        print ("Starting backup of database " + DB_NAME)
        multi = 0

    if multi:
        in_file = open(DB_NAME,"r")
        flength = len(in_file.readlines())
        in_file.close()
        p = 1
        dbfile = open(DB_NAME,"r")

        while p <= flength:
            db = dbfile.readline()   # reading database name from file
            db = db[:-1]         # deletes extra line
            dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
            os.system(dumpcmd)
            gzipcmd = "gzip " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
            os.system(gzipcmd)
            p = p + 1
        dbfile.close()
    else:
        db = DB_NAME
        dumpcmd = "mysqldump -h " + DB_HOST + " -u " + DB_USER + " -p" + DB_USER_PASSWORD + " " + db + " > " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
        os.system(dumpcmd)
        gzipcmd = "gzip " + pipes.quote(TODAYBACKUPPATH) + "/" + db + ".sql"
        os.system(gzipcmd)
        # t = ("Your backups have been created in '" + TODAYBACKUPPATH + "' directory")
        return "Your Folder have been created in '" + TODAYBACKUPPATH + "'." 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多