概要:
メインテクノロジースタック:
環境準備:
python -m venv myenv
を実行する次に、画像アップロードの関数を実装する必要があります。ユーザーは、フロントエンドページで画像を選択してアップロードすると、バックエンドが画像を受信し、ローカルアップロードディレクトリに保存し、タイトルとファイル名をデータベースに保存します。
@app.route('/upload', methods=['POST'])
def upload():
file = request.files.get("image")
if file:
img = Image.open(file)
img.save("uploads/" + file.filename)
image = Image(title=request.form.get("title"), filename=file.filename)
db.session.add(image)
db.session.commit()
return "Upload successful!"
else:
return "Upload failed!"
次に、画像表示の関数を実装する必要があります。ユーザーは、アクセス /画像パスを介してシステムに保存されているすべての画像を表示し、単一の画像をクリックして詳細を表示できます。
@app.route('/images')
def images():
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(image)
db.session.commit()
return redirect('/images')
より良いユーザーエクスペリエンスを提供するには、適切なHTMLおよびCSSコードをフロントエンドページに追加し、JINJA2テンプレートエンジンを使用して動的なコンテンツをレンダリングします。
<!-- images.html -->
{% for image in images %}
<div>
<a href="{{ url_for('image_detail', image_id=image.id) }}">View details</a>
<a href="{{ url_for('delete_image', image_id=image.id) }}">Delete</a>
</div>
{% endfor %}
<!-- image_detail.html -->
<h1>{{ image.title }}</h1>
上記のコードの例を介して、Pythonを使用してCMSシステムの画像管理機能を書き込む方法を学ぶことができます。もちろん、この記事は簡単な例のみを提供し、実際のCMSシステムにはより多くの機能と複雑なロジックが必要になる場合があります。読者がそれからいくらかのインスピレーションを得て、彼らのプロジェクトにより多くの可能性をもたらすことができることを願っています。同時に、Web開発の分野での能力と技術レベルをさらに向上させるために、詳細に勉強し、実践する必要があります。