Rumah  >  Soal Jawab  >  teks badan

python - masalah pengalihan hala kelalang?

Kod adalah seperti berikut. Imej boleh dimuat naik dengan jayanya, tetapi imej tidak boleh dipaparkan selepas imej berjaya dimuat naik Adakah ini cara yang betul untuk menulis ubah hala?

#!/usr/bin/env python3
# -*- coding:utf-8-*-

import os

from flask import Flask, render_template, request, redirect, url_for
from flask_uploads import UploadSet, configure_uploads, patch_request_class, IMAGES

app = Flask(__name__)

app.config['UPLOADED_PHOTOS_DEST'] = os.getcwd() + "/upload/img"
photos = UploadSet('photos', IMAGES)
configure_uploads(app, photos)
patch_request_class(app)


@app.route('/', methods=['POST', 'GET'])
def index():
    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        file_url = photos.url(filename)
        print("filename = %s, file_url = %s" % (filename, file_url))
        return redirect(url_for('index', file_url=file_url))
    return render_template('index.html', file_url=None)


if __name__ == '__main__':
    app.run(port=8080)
<!doctype html>
<html>
<head>
    <title>Demo-上传文件</title>

</head>
<body>
<h1>文件上传demo</h1>
<form method="post" enctype="multipart/form-data">
    <input type="file" name="photo">
    <input type="submit" value="上传">
</form>
<br>
{% if file_url %}
    <img src="{{ file_url }}" alt="">
    {% else %}
    <p>还没有上传文件</p>
{% endif %}
</body>
</html>

----------Kemas kini----------
Ubah suai penghalaan indeks dan mencapai kesan yang diingini:

@app.route('/', methods=['POST', 'GET'])
def index():
    file_url = None
    if request.method == 'POST' and 'photo' in request.files:
        filename = photos.save(request.files['photo'])
        file_url = photos.url(filename)
        print("filename = %s, file_url = %s" % (filename, file_url))
    return render_template('index.html', file_url=file_url)

Tetapi adakah pemikiran sebelum ini salah?

phpcn_u1582phpcn_u15822733 hari yang lalu802

membalas semua(1)saya akan balas

  • 滿天的星座

    滿天的星座2017-05-18 10:50:50

    Untuk paparan imej, anda perlu menentukan laluan untuk menghantar fail statik, dan anda boleh menggunakan send_from_directory untuk pemprosesan yang sepadan.

    @app.route('/get_media/<path:filename>', methods=['GET'])
    def get_media(filename):
       return send_from_directory('/media/', filename)

    balas
    0
  • Batalbalas