>  기사  >  백엔드 개발  >  플라스크에 아바타 업로드에 대한 자세한 설명

플라스크에 아바타 업로드에 대한 자세한 설명

零下一度
零下一度원래의
2017-07-17 14:00:071582검색

플라스크 웹 개발 책은 기본적으로 끝났고 나중에 다시 봐야 하는데 제가 만든 블로그가 늘 좀 투박한 느낌이라 머리를 써서 새로운 기능을 개발하고 있어요

오늘은 가장 기본적인 기능을 생각했어요 , 맞춤형 아바타

이러한 기능은 두 가지 기본 기능 블록으로 설계되었습니다

1: 파일을 업로드하고 저장하는 방법

2: 사용자 모델에서 아바타 사진과 사용자를 연결하는 방법

온라인에서 확인한 두 번째 질문 토론 후 , 우리는 기본적으로 두 가지 방법을 생각해 냈습니다. 첫 번째는 이미지를 바이너리로 변환한 다음 이를 데이터베이스에 저장하는 것입니다. 두 번째는 이미지를 파일 시스템에 직접 저장하는 것입니다. 오랫동안 파일만 업로드한다고 생각했는데, 데이터베이스가 이 경로를 저장한 다음 이를 프런트 엔드에 표시합니다.

데이터베이스 설정은 다음과 같습니다

user_image=db.Column(db.String(252),nullable=True)

폼 폼 디자인:

avatar=FileField('头像')

백엔드 구현 코드
 avatar=request.files['avatar']
 fanme=avatar.filename
 upfile=os.getcwd()+('/app/static/avatar/')
 ALLOWER_EXIT=['pang','jpg','jpeg','jig']
flag='.' in fanme and fanme.split('.')[1] in ALLOWER_EXITif not flag:     return render_template('editperson.html',form=form)
 avatar.save('{}{}{}'.format(upfile,user.username,fanme))
 user.user_image='/static/avatar/{}{}'.format(user.username,fanme)
 db.session.add(user)

저장 경로는
/static/avatar/,支持格式 pang、jpg、jpeg等格式,这个可以根据自己的需求进行设置。 
存储后会在数据库存储一个路径
最后实现后数据库

앞쪽- end display

{% if username.user_image%}<img   src="{{username.user_image}}" style="height:80px;">{%else%}<img src="/static/img/0.jpg" style="height:70px;width:80px">{%endif%}

설명하자면 여기 백엔드에 아바타를 업로드하는 코드가 Windows에서 파일이 존재하지 않는다고 오류를 보고하는데 수정하려고 했는데 경로명이 너무 길어서는 안 됩니다.

짧은 경로 이름도 괜찮지만, 긴 이름도 괜찮습니다. 오류를 신고하세요. 윈도우 개발에는 단점이 많지만 우분투에서 구현하는데 문제는 없습니다

위 내용은 플라스크에 아바타 업로드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.