python -m venv myenv
실행다음으로 이미지 업로드의 기능을 구현해야합니다. 사용자는 프론트 엔드 페이지에서 사진을 선택하고 업로드합니다. 사진을 수신 한 후 백엔드는 로컬 업로드 디렉토리에 저장하고 제목 및 파일 이름을 데이터베이스에 저장합니다.
@app.route ( '/upload', method = [ 'post']) def upload () : file = request.files.get ( "image") 파일 인 경우 : img = image.open (파일) img.save ( "업로드/" + file.filename) image = image (title = request.form.get ( "title"), filename = file.filename) db.session.add (이미지) db.session.commit () "성공적으로 업로드!" 또 다른: "업로드 실패!"
그런 다음 사진 표시 기능을 구현하십시오. 사용자는 액세스 /이미지 경로를 통해 저장된 모든 이미지를 볼 수 있으며 클릭하여 단일 이미지의 세부 사항을 볼 수 있습니다.
@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) render_template return ( '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 () 리디렉션 리턴 ( '/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 시스템의 이미지 관리 기능을 작성하는 방법을 알 수 있습니다. 이것은 단순한 예일 뿐이지 만 플라스크 프레임 워크, SQLALCHEMY 데이터베이스 도구 및 PIL 이미지 처리 라이브러리의 기본 사용법을 보여줍니다. 실제 개발에서 CMS 시스템은 더 많은 기능과 복잡한 논리가 필요할 수 있으며 개발자는이 기준으로 확장 및 최적화 할 수 있습니다.