Python 我正试图在这里使用混合加密技术制作一个安全的文件存储系统。我的url和从目录导入的发送不起作用

Python 我正试图在这里使用混合加密技术制作一个安全的文件存储系统。我的url和从目录导入的发送不起作用,python,flask,cryptography,Python,Flask,Cryptography,我正在尝试使用混合加密技术制作一个安全的文件存储系统。目录导入的“我的url”和“从目录发送”不起作用 import os from flask import Flask, request, redirect, url_for, render_template, send_from_directory, send_file, flash from werkzeug.utils import secure_filename import tools import divider as dv

我正在尝试使用混合加密技术制作一个安全的文件存储系统。目录导入的“我的url”和“从目录发送”不起作用

import os

from flask import Flask, request, redirect, url_for, render_template, send_from_directory, send_file, flash

from werkzeug.utils import secure_filename

import tools

import divider as dv

import encrypter as enc

import decrypter as dec

import restore as rst

UPLOAD_FOLDER = './uploads/'

UPLOAD_KEY = './key/'

ALLOWED_EXTENSIONS = {'pem'}



app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

app.config['UPLOAD_KEY'] = UPLOAD_KEY




def allowed_file(filename):

    return '.' in filename and \

           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS





def start_encryption():

    dv.divide()

    tools.empty_folder('uploads')

    enc.encrypter()

    return render_template('success.html')


def start_decryption():

    dec.decrypter()

    tools.empty_folder('key')

    rst.restore()

    return render_template('restore_success.html')


@app.route('/return-key/My_Key.pem')

def return_key():

    list_directory = tools.list_dir('key')

    filename = './key/' + list_directory[0]

    return send_file(filename, attachment_filename='My_Key.pem')



@app.route('/return-file/')

def return_file():

    list_directory = tools.list_dir('restored_file')

    filename = './restored_file/' + list_directory[0]

    print("****************************************")

    print(list_directory[0])

    print("****************************************")

    return send_file(filename, attachment_filename=list_directory[0], as_attachment=True)


@app.route('/download/')

def downloads():

    return render_template('download.html')



@app.route('/upload')

def call_page_upload():

    return render_template('upload.html')



@app.route('/home')

def back_home():

    tools.empty_folder('key')

    tools.empty_folder('restored_file')

    return render_template('index.html')


@app.route('/')

def index():

    return render_template('index.html')


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

def upload_file():

    tools.empty_folder('uploads')

    if request.method == 'POST':

        
        if 'file' not in request.files:

            flash('No file part')

            return redirect(request.url)

        file = request.files['file']


        if file.filename == '':

            flash('No selected file')

            return 'NO FILE SELECTED'

        if file:

            filename = secure_filename(file.filename)

            file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))

            return start_encryption()

        return 'Invalid File Format !'



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

def upload_key():

    tools.empty_folder('key')

    if request.method == 'POST':

        # check if the post request has the file part

        if 'file' not in request.files:

            flash('No file part')

            return redirect(request.url)

        file = request.files['file']



        if file.filename == '':

            flash('No selected file')

            return 'NO FILE SELECTED'

        if file and allowed_file(file.filename):

            filename = secure_filename(file.filename)

            file.save(os.path.join(app.config['UPLOAD_KEY'], file.filename))

            return start_decryption()

        return 'Invalid File Format !'



if __name__ == '__main__':

    app.run(host='127.0.0.1', port=8000, debug=True)

TypeError TypeError:只能将str(而不是“字节”)连接到str。运行应用程序并上载其上的任何文件时会显示此错误