Das mit Flask angezeigte Bild ist falsch oder beschädigt
P粉299174094
P粉299174094 2023-09-12 00:21:51
0
1
625

Ich richte eine Webanwendung ein, in der ich einige Bilder anzeigen muss. Die Bilder, die ich von der API erhalte, konvertieren den Matplotlib-Plot in PNG und senden ihn dann mithilfe der io-Bibliothek an die Hauptwebanwendung. Daher erscheinen die Bilder, die ich auf der Seite anzeige, fast immer falsch oder falsch. Aber wenn ich sie über das Kontextmenü auf einer neuen Seite öffne, funktionieren sie einwandfrei.

Also dieser Code zum Senden von Bildern

@app.route('/send-data-a', methods=['GET'])
def send_data_user_dynamic():
...some code for diagram...
image_stream1 = io.BytesIO()
        plt.savefig(image_stream1, format='png')
        image_stream1.seek(0)
        plt.close(fig)

        return send_file(image_stream1, mimetype='image/png')

Ich habe versucht, den Zeitstempel in die Haupt-App einzufügen, damit der Link eindeutig ist, aber das hat nicht geholfen

@app.route('/data', methods=['GET'])
def data():
    timestamp = int(time.time())

    user_dynamic = requests.get(f'http://127.0.0.1:5000/send-data-a?timestamp={timestamp}')
    user_amount = requests.get(f'http://127.0.0.1:5000/send-data-b?timestamp={timestamp}')
    kp_month = requests.get(f'http://127.0.0.1:5000/send-data-c?timestamp={timestamp}')
    kp_week = requests.get(f'http://127.0.0.1:5000/send-data-d?timestamp={timestamp}')

    return render_template('second.html',
                           user_dynamic=user_dynamic.url,
                           user_amount=user_amount.url,
                           kp_month=kp_month.url,
                           kp_week=kp_week.url)
if __name__ == '__main__':
    app.run(debug=True, port=5001)

Und es gibt eine HTML-Vorlage, um sie auszugeben

<div class="diagram">
        <img src="{{ user_dynamic }}" alt="user_dynamic">
        <figcaption>some text</figcaption>
    </div>

P粉299174094
P粉299174094

Antworte allen(1)
P粉701491897
import base64

user_dynamic_response = requests.get('http://127.0.0.1:5000/send-data-a')
user_amount_response = requests.get('http://127.0.0.1:5000/send-data-b')
kp_month_response = requests.get('http://127.0.0.1:5000/send-data-c')
kp_week_response = requests.get('http://127.0.0.1:5000/send-data-d')

user_dynamic_image_data = base64.b64encode(user_dynamic_response.content).decode('utf-8')
user_amount_image_data = base64.b64encode(user_amount_response.content).decode('utf-8')
kp_month_image_data = base64.b64encode(kp_month_response.content).decode('utf-8')
kp_week_image_data = base64.b64encode(kp_week_response.content).decode('utf-8')

return render_template('second.html',
                       user_dynamic=user_dynamic_image_data,
                       user_amount=user_amount_image_data,
                       kp_month=kp_month_image_data,
                       kp_week=kp_week_image_data)

所以呃这段代码解决了问题

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!