python -m venv myenvを実行する次に、画像アップロードの関数を実装する必要があります。ユーザーは、フロントエンドページで画像を選択してアップロードします。写真を受け取った後、バックエンドはそれをローカルアップロードディレクトリに保存し、タイトルとファイル名をデータベースに保存します。
@app.route( '/upload'、method = ['post']))
def upload():
file = request.files.get( "image")
ファイルの場合:
img = image.open(file)
img.save( "uploads/" + file.filename)
画像=画像(title = request.form.get( "title")、filename = file.filename)
db.session.add(画像)
db.session.commit()
「成功してアップロード!」を戻るします。
それ以外:
「アップロードが失敗しました!」を戻るします。
次に、画像表示関数を実装します。ユーザーは、アクセス/画像パスを介して保存されたすべての画像を表示し、クリックして単一の画像の詳細を表示できます。
@app.route( '/images')
def images():
画像= image.query.all()
return render_template( 'images.html'、images = images)
@app.route( '/image/<int:image_id> ')
def image_detail(image_id):
image = image.query.get(image_id)
return render_template( 'image_detail.html'、image = image)
次に、画像削除の関数を実装することです。ユーザーは、ページ上の[削除]ボタンをクリックして、指定された画像を削除できます。
@app.route( '/delete/<int:image_id> ')
def delete_image(image_id):
image = image.query.get(image_id)
db.session.delete(画像)
db.session.commit()
return redirect( '/images')
より良いユーザーエクスペリエンスを提供するために、フロントエンドページは適切なHTMLおよびCSSコードを追加して、JINJA2テンプレートエンジンを使用して動的なコンテンツをレンダリングできます。
<!-- images.html -->
{画像の画像の%}
<div>
<a href="{{ url_for('image_detail', image_id=image.id) }}">詳細を急行します</a>
<a href="{{ url_for('delete_image', image_id=image.id) }}">消去</a>
</div>
{%endfor%}
<!-- image_detail.html -->
<h1>{{image.title}}</h1>
上記のコードの例を介して、Pythonを使用してCMSシステムの画像管理機能を書き込む方法を見ることができます。これは単なる簡単な例ですが、Flaskフレームワーク、SQLalchemyデータベースツール、PIL画像処理ライブラリの基本的な使用法を示しています。実際の開発では、CMSシステムはより多くの機能と複雑なロジックを必要とする場合があり、開発者はこれに基づいて拡張および最適化できます。