아바타를 업로드하는 것은 단지 파일을 업로드하는 것이라고 오랫동안 생각했습니다. 실제로 경로가 있고 데이터베이스는 이 경로를 저장한 다음 아무 말도 하지 않고 프런트 엔드에 표시합니다. 어떻게 구현되는지 살펴보겠습니다.
데이터베이스 설정은 다음과 같습니다
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!