How to Return a Random Gif from a List with Python Requests [Duplicate]

I'm using a web server on PythonAnywhere to run a Flask application. All I'm looking to do is randomly output a gif from a list of URLs. I'm looking to utilize the requests library, and I suspect I need the render_template in order to actually pass the image over. I have been dealing with either view function TypeErrors or outputs of plain text to a URL. I've also incorporated PIL and shutil once or twice but to no functional success.

from flask import Flask, render_template

import random
import requests

app = Flask(__name__)

WELCOME_LIST = [
  '
  '
  '
  '
  '
  '
  '
  '
  '
  '
  '
  '
]

@app.route('/')

def obtainGif():
    gif = random.choice(WELCOME_LIST)
    response = requests.get(gif)
    return response.raw

@app.route('/join')

def output():
    finalize = obtainGif
    return render_template('home.html', finalize=finalize)

if __name__ == '__main__':
    app.run(host='0.0.0.0')
0

Use the send_file method.

from flask import Flask, render_template, send_file

def obtainGif():
    gif = random.choice(WELCOME_LIST)
    response = requests.get(gif, stream=True)
    return send_file(response.raw, mimetype='image/gif')

You can use {{ variable }} anywhere in your template, not just in the HTML part.


def output():
    gif = random.choice(WELCOME_LIST)
   return render_template('home.html', gif=gif)

in the home.html file add a script tag in which you are capturing this passed data

<script>
let gif= {{gif|safe}};
</script>

At this point you have the GIF URL inside your java-script code from where you can edit the HTML part of your code to add this GIF inside the <img> tags

Robert Thorne

Robert Thorne

Automotive & Future Transportation Editor

Robert Thorne covers electric vehicle innovations, autonomous driving systems, global mobility trends, and automotive engineering developments.

Share this article
Twitter Facebook Pinterest