Возникли проблемы с перенаправлением страниц во Flask - PullRequest
0 голосов
/ 03 мая 2019

У меня есть код, который состоит из app.py, папки шаблона (индекс и результаты). Я использую Dropzone для загрузки своих изображений / видео. У меня проблемы с загрузкой изображений / видео. После того, как я загрузил его, страница не переходит на results.html, чтобы показать загруженные изображения. Вместо этого он остается на той же странице. Но изображение / видео сохраняется в моем каталоге. Пожалуйста, просмотрите.

app.py:

import os

from flask import Flask, render_template, request, session, redirect, url_for
from flask_dropzone import Dropzone
from flask_uploads import UploadSet

basedir = os.path.abspath(os.path.dirname(__file__))

app = Flask(__name__)

app.config.update(
    UPLOADED_PATH=os.path.join(basedir, 'uploads'),
    # Flask-Dropzone config:
    DROPZONE_MAX_FILE_SIZE=1024,  # set max size limit to a large number, here is 1024 MB
    DROPZONE_TIMEOUT=5 * 60 * 1000  # set upload timeout to a large number, here is 5 minutes
)
app.config['SECRET_KEY'] = 'supersecretkeygoeshere'
app.config['DROPZONE_REDIRECT_VIEW'] = 'results'
dropzone = Dropzone(app)


@app.route('/', methods=['POST', 'GET'])
def index():
    #set session for image results
    if "filename" not in session:
        session['filename'] = []
    #list to hold our uploaded image urls
    filename = session['filename']

    #handle image upload from dropzone
    if request.method == 'POST':
        f = request.files.get('file')
        f.save(os.path.join(app.config['UPLOADED_PATH'], f.filename))
        #append image urls
        filename.append(filename.url(filename))
        session['filename'] = filename
        return "uploading..."
    return render_template('index.html')


@app.route('/results')
def results():

    #redirect to home if no images to display
    if "filename" not in session or session['filename'] == []:
        return redirect(url_for('index'))

    #set the filename and remove the session variables
    filename = session['filename']
    session.pop('filename', None)
    return render_template('results.html', filename=filename)


if __name__ == '__main__':
    app.run(debug=True)

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Flask-Dropzone Demo</title>
  {{ dropzone.load_css() }}
  {{ dropzone.style('border: 2px dashed #0087F7; margin: 10%; min-height: 400px;') }}
</head>
<body>
  {{ dropzone.create(action='index') }}
  {{ dropzone.load_js() }}
  {{ dropzone.config() }}
</body>
</html> ```

results.html:

<html><h1>These are your uploaded images</h1>
<a href = "{{ url_for('dropzone.static', filename='index.html') }}">Back</a><p>
        <ul>
        {% for filenm in filename %}
           <li><img style="height: 150px" src="{{ filenm }}"></li>
        {% endfor %}
    </ul>
    </p> </html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...