Как сохранить файл в локальной директории пользователя, а не на сервере в колбе? - PullRequest
0 голосов
/ 09 ноября 2019

Я создал веб-приложение, в котором пользователь может загружать отчеты из Афины в формате .xlsx.

Когда я размещаю приложение в моей системе, пользователи могут получить доступ к веб-странице моей колбы, но когда пользователь загружает ее. сообщить, что отчеты сохраняются в моей системе.

Когда я пытаюсь изменить местоположение или другим способом, я получаю ОШИБКА ВНУТРЕННЕГО СЕРВЕРА

'' '

CGIHandler().run(app)


app = Flask(__name__)



def colorExcle(loc):
    wb = Workbook()
    location = loc


    redFill = PatternFill(start_color='99e6ff',
                    end_color='99e6ff',
                    fill_type='solid')

    ws = wb.active
    wb = openpyxl.load_workbook(location)

    sheet = wb['Sheet1']
    sheet.cell(row=1, column=11).value = 'UserName'
    sheet.cell(row=1, column=12).value = 'Result'
    sheet.cell(row=1, column=13).value = 'Coding Time in min'
    sheet.cell(row=1, column=14).value = 'QC1 By'
    sheet.cell(row=1, column=15).value = 'QC1 Result'
    sheet.cell(row=1, column=16).value = 'QC1 Time in min'
    sheet.cell(row=1, column=17).value = 'Comments'
    sheet.cell(row=1, column=18).value = 'KM'
    sheet.cell(row=1, column=19).value = 'Rework'
    sheet.cell(row=1, column=20).value = 'QC2 Time in min'
    sheet.cell(row=1, column=21).value = 'QC2 Results'



    sheet.cell(row=1,column=1).fill = redFill
    sheet.cell(row=1,column=2).fill = redFill
    sheet.cell(row=1,column=3).fill = redFill
    sheet.cell(row=1,column=4).fill = redFill
    sheet.cell(row=1,column=5).fill = redFill
    sheet.cell(row=1,column=6).fill = redFill
    sheet.cell(row=1,column=7).fill = redFill
    sheet.cell(row=1,column=8).fill = redFill
    sheet.cell(row=1,column=9).fill = redFill
    sheet.cell(row=1,column=10).fill = redFill
    sheet.cell(row=1,column=11).fill = redFill
    sheet.cell(row=1,column=12).fill = redFill
    sheet.cell(row=1,column=13).fill = redFill
    sheet.cell(row=1,column=14).fill = redFill
    sheet.cell(row=1,column=15).fill = redFill
    sheet.cell(row=1,column=16).fill = redFill
    sheet.cell(row=1,column=17).fill = redFill
    sheet.cell(row=1,column=18).fill = redFill
    sheet.cell(row=1,column=19).fill = redFill

    sheet.cell(row=1,column=20).fill = redFill
    sheet.cell(row=1,column=21).fill = redFill
    wb.save(location)   

    return render_template('index.html')





@app.route('/', methods = ['GET', 'POST'])

def index():

    if "HAD" in request.form:

        projectTag = request.form.get('projectTag')
        region = request.form.get('region')

        if request.method == "POST":
            region = request.form.get("region", None)
            if region!=None:

                conn = connect(aws_access_key_id='xxxxxxxxxxxxxxxxxxxxxxxxx',
                    aws_secret_access_key='xxxxxxxxxxxxxxxxxxxxxxxxxxx',
                    s3_staging_dir='s3://xxxxxxxxxxxxxxxxxxxxxx/',
                    region_name='us-west-1')


                userName = getpass.getuser()

                cursor = conn.cursor()
                now = datetime.today().strftime("%d-%m-%y")
                excelName=region.upper()+"_"+projectTag+"_"+now
                wb = Workbook()
                ws = wb.active

                data1 = r"C:\\Users\\"+ getpass.getuser()+"\\Downloads\\"+excelName+'.xlsx'


                wb.save(data1)
                wb = openpyxl.load_workbook(data1)
                sheet = wb['Sheet']
                data =  pd.read_sql("SELECT * from geocord;",conn)
                data.to_excel(data1)

                return colorExcle(data1)
                return render_template('index.html', projectTag,region)


    return render_template('index.html')


@app.route('/home', methods = ['GET', 'POST'])



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



if __name__ == "__main__":

    app.run(host="192.168.0.103",port=80)

'' '

Я также использовал:' '' path = "C: \ Flask"

return send_file(path, as_attachment=True)

'' 'Получение ошибки как: cmd: PermissionError: [Errno 13] В доступе отказано веб-страница: Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Либо сервер перегружен, либо в приложении произошла ошибка.

Описательный код поможет мне больше, так как я новичок в фреймворке.

...