Creating a YouTube Flask extension
To begin, the first extension we are going to create is a simple extension that allows embedding YouTube videos in Jinja templates with the following tag:
{{ youtube(video_id) }}
The video_id
object is the code after the v
in any YouTube URL. For example, in the URL https://www.youtube.com/watch?v=_OBlgSz8sSM, the video_id
object would be _OBlgSz8sSM
.
For now, the code for this extension will reside in extensions.py
. However, this is only for development and debugging purposes. When the code is ready to be shared, it will be moved into its own project directory.
The first thing that any Flask extension needs is the object that will be initialized on the app. This object will handle adding its Blueprint
object to the app and registering the youtube
function on Jinja:
from flask import Blueprint class Youtube(object): def __init__(self, app=None, **kwargs): if app: self.init_app(app) def init_app(self, app): self.register_blueprint...