社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何通过点击html按钮运行python函数?

Verbamore • 6 年前 • 1977 次点击  

  1. 导入文件
  2. 运行python脚本
  3. 导出结果

当我独立运行python脚本(不干扰flask)时,它运行得很好(我使用Jupyter笔记本),另一方面,当我使用flask(从提示符处)运行它时,我得到一个错误:

File "app.py", line 88, in <module>
    for name, df in transformed_dict.items():
NameError: name 'transformed_dict' is not defined

你知道我怎样才能让这个网络应用工作吗? 这是我第一次使用烧瓶,我会感谢任何建议或指导。

python file & html file

from flask import Flask,render_template,request,send_file
from flask_sqlalchemy import SQLAlchemy
import os
import pandas as pd
from openpyxl import load_workbook
import sqlalchemy as db

def transform(df):
    # Some data processing here 
    return df

app=Flask(__name__)

@app.route('/')
def index():
    return render_template('firstpage.html')


@app.route('/upload',methods=['Get','POST'])
def upload():
    file=request.files['inputfile']

    xls=pd.ExcelFile(file)

    name_dict = {}

    snames = xls.sheet_names

    for sn in snames:
        name_dict[sn] = xls.parse(sn)

    for key, value in name_dict.items():
        transform(value)
    transformed_dict={}

    for key, value in name_dict.items():
        transformed_dict[key]=transform(value)

#### wirte to excel example:
writer = pd.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
for name, df in transformed_dict.items():
    df.to_excel(writer, sheet_name=name)
writer.save()

if __name__=='__main__':
    app.run(port=5000)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54880
文章 [ 1 ]  |  最新文章 6 年前
Randy
Reply   •   1 楼
Randy    6 年前

你的街区:

#### wirte to excel example:
writer = pd.ExcelWriter("MyData.xlsx", engine='xlsxwriter')
for name, df in transformed_dict.items():
    df.to_excel(writer, sheet_name=name)
writer.save()

应该是你的一部分 upload() 函数,因为这是定义和填充 transformed_dict

当前的错误即将出现,因为它试图在启动脚本后立即运行该代码,并且 变形的 在那一点上不存在。