개요 :
주요 기술 스택 :
환경 준비 :
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 시스템에는 더 많은 기능과 복잡한 논리가 필요할 수 있습니다. 독자들이 영감을 얻고 프로젝트에 더 많은 가능성을 가져올 수 있기를 바랍니다. 동시에, 우리는 또한 웹 개발 분야의 기능과 기술 수준을 더욱 향상시키기 위해 심층적으로 연구하고 실습해야합니다.