Я новичок в использовании микро-фреймворка flask. В настоящее время я создаю веб-страницу для загрузки документов. Загруженные документы в настоящее время хранятся в моем локальном пути файлового менеджера. Я sh для генерации идентификатора сеанса для каждой отдельной загрузки документов, и документы хранятся в виде папки по заданному пути с некоторым сеансом / уникальным идентификатором. Я сохраняю список нескольких отправленных файлов, а затем после отправки показываю список обновленных файлов.
мой файл деплимента выглядит следующим образом:
import os
from flask import Flask, render_template, request, redirect, url_for, send_from_directory
from werkzeug.utils import secure_filename
app = Flask(__name__,template_folder=r'C:\Users\Pawan\Desktop\Flask\env\Scripts\Template')
app.config['UPLOAD_FOLDER'] = r'Source Directory'
app.config['ALLOWED_EXTENSIONS'] = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1] in app.config['ALLOWED_EXTENSIONS']
@app.route('/')
def index():
return render_template('template.html')
@app.route('/upload', methods=['POST'])
def upload():
uploaded_files = request.files.getlist("file[]")
filenames = []
for file in uploaded_files:
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
filenames.append(filename)
return render_template('template2.html', filenames=filenames)
@app.route('/uploads/<filename>')
def uploaded_file(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'],filename)
if __name__ == '__main__':
app.run(debug=True)
Шаблон. html:
<!DOCTYPE html>
<html lang="en">
<head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="header">
<h3 class="text-muted">Asking the user to upload forms </h3>
</div>
<hr/>
<div>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" multiple="" name="file[]" class="span3" /><br />
<input type="submit" value="Upload" class="span2">
</form>
</div>
</div>
</body>
</html>
Template2. html: Мне все еще нужно добавить опцию для удаления файлов
<!DOCTYPE html>
<html lang="en">
<head>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="header">
<h3 class="text-muted">Successfully uploaded the documents</h3>
</div>
<hr/>
<div>
This is a list of the files you just uploaded, click on them to load/download them
<ul>
{% for file in filenames %}
<li><a href="{{url_for('uploaded_file', filename=file)}}">{{file}}</a></li>
{% endfor %}
</ul>
</div>
<div class="header">
</div>
<hr/>
</div>
</div>
</body>
</html>
Буду признателен за любые конструктивные предложения. Заранее спасибо !!