Python を使用して CMS システムのビデオ管理機能を作成する方法
はじめに:
今日のデジタル時代において、ビデオは非常に重要なメディア形式となっています。さまざまな Web サイトには、ビデオ コンテンツを簡単にアップロード、保存、再生、管理できるようにビデオ管理機能が必要です。この記事では、Python を使用して CMS システムでビデオ管理機能を作成する方法を説明します。
1. 準備:
書き始める前に、必要な Python ライブラリをいくつかインストールする必要があります。これらのライブラリは、ビデオ ファイルの処理、データベースへの接続、およびその他の対応する機能の実装に役立ちます。
Flask ライブラリをインストールします:
Flask は、シンプルで使いやすい Web サイトの構築に使用できる軽量の Python Web フレームワークです。
コマンド ラインで次のコマンドを実行して、Flask ライブラリをインストールします:
pip install flask
SQLAlchemy ライブラリをインストールします:
SQLAlchemy は、Python の非常に強力なデータベース ツールです。さまざまなデータベースに柔軟に接続・運用できます。
コマンド ラインで次のコマンドを実行して SQLAlchemy ライブラリをインストールします:
pip install sqlalchemy
Flask-Uploads ライブラリをインストールします:
Flask-Uploads は便利なライブラリです。ファイルアップロード機能を実装します。
コマンド ラインで次のコマンドを実行して、Flask-Uploads ライブラリをインストールします:
pip install flask-uploads
2. Flask アプリケーションの作成:
コードを書き始める前に、Flask アプリケーションを作成し、必要な設定を行う必要があります。
まず、app.py という名前のファイルを作成し、その中に次の内容を入力します。
from flask import Flask app = Flask(__name__) app.config['UPLOADS_DEFAULT_DEST'] = 'path/to/uploads/directory' # 指定上传文件保存的目录 if __name__ == '__main__': app.run()
'path/to/uploads/directory'
を、ディレクトリに設定したい内容に置き換えてください。アップロードされたファイルを保存します。
3. ビデオ アップロード関数を作成します:
次に、ビデオ アップロード関数の作成を開始します。
まず、次のコードを app.py ファイルに追加します:
from flask_uploads import UploadSet, configure_uploads, VIDEO # 创建一个名为videos的上传集合,用于存储视频文件 videos = UploadSet('videos', extensions=VIDEO) # 将上传集合与Flask应用进行关联 configure_uploads(app, videos)
ビデオ アップロード ルートを追加します。
app.py ファイルに次のコードを追加します:
from flask import request @app.route('/upload', methods=['GET', 'POST']) def upload(): if request.method == 'POST' and 'video' in request.files: filename = videos.save(request.files['video']) return f'{filename} 上传成功' return ''' <form method="POST" enctype="multipart/form-data"> <input type="file" name="video"> <input type="submit" value="上传"> </form> '''
このコードは、/upload という名前のルートを定義します。ユーザーが POST 経由でビデオをアップロードすると、video.save() メソッドが呼び出されます。ビデオファイルを保存します。アップロードが成功すると、成功メッセージが返されます。ユーザーが GET 経由で /upload ルートにアクセスすると、単純なファイル アップロード フォームが表示されます。
4. ビデオ管理関数の作成:
Video という名前のデータベース モデルを作成します。
app.py ファイルに、次のコードを追加します。
from sqlalchemy import Column, Integer, String from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class Video(Base): __tablename__ = 'videos' id = Column(Integer, primary_key=True) name = Column(String(255))
このコードは、ビデオ オブジェクトを表す Video という名前のデータベース モデルを作成します。これには、自動インクリメントされる ID フィールドと、ビデオの名前を保存する名前フィールドが含まれます。
データベース テーブルを作成し、データベースにビデオを追加します。
app.py ファイルに、次のコードを追加します。
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker engine = create_engine('sqlite:///videos.db') Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() @app.route('/add_video', methods=['GET', 'POST']) def add_video(): if request.method == 'POST' and 'video' in request.files: filename = videos.save(request.files['video']) video = Video(name=filename) session.add(video) session.commit() return f'{filename} 上传成功并保存到数据库' return ''' <form method="POST" enctype="multipart/form-data"> <input type="file" name="video"> <input type="submit" value="上传"> </form> '''
このコードでは、最初に videos.db という名前の SQLite データベースを作成し、Video モデルを使用して対応するテーブルを作成します。次に、/add_video ルートで、ユーザーが POST 経由でビデオをアップロードすると、ビデオがデータベースに保存されます。
5. ビデオ再生関数を作成します:
ビデオ再生ルートを作成します。
app.py ファイルに次のコードを追加します。
@app.route('/videos') def video_list(): videos = session.query(Video).all() return ''' <ul> {% for video in videos %} <li> <a href="{{ url_for('video_detail', video_id=video.id) }}">{{ video.name }}</a> </li> {% endfor %} </ul> ''' @app.route('/videos/<int:video_id>') def video_detail(video_id): video = session.query(Video).get(video_id) return f''' <h1>{video.name}</h1> <video src="{{ url_for('static', filename='videos/' + video.name) }}" controls></video> '''
このコードは、すべてのビデオのリストを表示する /videos という名前のルートを作成します。ユーザーがビデオをクリックすると、ビデオの詳細ページが開きます。詳細ページで、39000f942b2545a5315c57fa3276f220
タグを使用してビデオを再生し、4a249f0d628e2318394fd9b75b4636b1
タグにビデオの名前を入力します。
静的ファイル ルーティングを定義します。
app.py ファイルに、次のコードを追加します。
from flask import send_from_directory @app.route('/static/videos/<path:filename>') def download_file(filename): return send_from_directory(app.config['UPLOADED_VIDEOS_DEST'], filename)
このコードは、ビデオ ファイルのリクエストを処理するための /download という名前のルートを定義します。要求されたファイルは、指定されたディレクトリからユーザーに送信されます。
6. アプリケーションを実行します:
上記のコードの記述が完了したら、コマンド ラインで次のコマンドを実行して Flask アプリケーションを開始できます:
python app.py
その後、 http://localhost:5000 にアクセスして CMS システムにアクセスし、ビデオ管理機能をテストできます。
結論:
この記事の導入部を通じて、Python を使用して CMS システムのビデオ管理機能を記述する方法を学びました。動画のアップロード、データベースへの保存、動画再生などの機能が備わっています。今後のプロジェクト開発に役立てていただければ幸いです。
以上がCMSシステムの動画管理機能をPythonで書く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。