2017-02-15 5 views
-1

Ich versuche ein eingebettetes YouTube Video in meine Flask App einzufügen.Embedded YouTube Video Jinja2 - Flask

Die Datenbank speichert YouTube URL

Das ist mein Modell:

class Post(db.Model): 
    id = db.Column(db.Integer, primary_key = True) 
    video = db.Column(db.String(450)) 

@app.route('/post/<id>') 
def post(id): 
    post = Post.query.filter_by(id=id).first() 
    return render_template('post.html', post = post) 

Meine Vorlage:

{% extends "base.html" %} 

{% block content %} 
    <div class="row"> 
     <div class="media"> 
     <iframe width="100%" src="{{post.video}}" frameborder="0" allowfullscreen></iframe> 
     </div> 
    </div> 
{% endblock %} 

Beispiel:

In der Datenbank werden URLs gespeichert:

id|video 
1 |https://www.youtube.com/watch?v=Q5XvLJrW6Fg 

In Web-Browser gerendert wird:

<iframe src="https://www.youtube.com/watch?v=Q5XvLJrW6Fg" allowfullscreen="" width="100%" frameborder="0"></iframe> 

aber das Video nicht angezeigt wird.

Antwort

1

Sie sollten den eingebetteten Link des Videos verwenden. In diesem Fall wäre es,

<iframe src="https://www.youtube.com/embed/Q5XvLJrW6Fg" allowfullscreen="" width="100%" frameborder="0"></iframe> 
+0

Ich werde mehr als ein Video verwenden, und es wird nicht immer das gleiche Video sein. –

+0

Holen Sie alle Video-URLs, die Sie verwenden möchten, als Liste und führen Sie sie in jinja durch, um einen Iframe für jede Video-URL zu erstellen. – franklinsijo

+0

Ich habe versucht, dieses: video = post.video media = '' In Vorlage Ich benutze {{media}}, aber die Fehler wird fortgesetzt –