1. 탈퇴 기능 구현
@app.route('/delete_account', methods=['GET', 'POST'])
def delete_account():
delete_user = db_session.query(User).filter_by(u_id=session['u_id']).first()
delete_question_user = db_session.query(QuestionContent).filter_by(writer=session['u_id']).all()
delete_image_user = db_session.query(ImageInfo).filter_by(user=session['u_id']).all()
db_session.delete(delete_user)
for question_user in delete_question_user:
db_session.delete(question_user)
for image_user in delete_image_user:
db_session.delete(image_user)
db_session.commit()
session.clear()
return render_template('/user_templates/main.html',logged_in=False)
<script type="text/javascript">
function doThing(event) {
event.preventDefault();
confirm('정말 탈퇴하시겠습니까?') ?
location.href = '/delete_account' :
null;
};
</script>
<button class="btn btn-secondary" name="delete_account" type="button" style="height:50px; text-align:center; line-height:10px; font-size:20px;" value=False onclick="doThing(event)">탈퇴</button>
👉 탈퇴 버튼을 누르면 '정말 탈퇴 하시겠습니까?' 라는 알림창이 뜸. '확인'을 누르면 탈퇴 기능이 실행되고 취소를 누르면 다시 mypage로 돌아옴
2. 마이페이지 내 image 저장 기능 구현
@app.route('/mypage_image', methods=['GET', 'POST'])
def mypage_image():
image_extenstion = ['ai', 'bmp', 'jpeg', 'jpg', 'jpe', 'jfif', 'jp2', 'j2c', 'pcx', 'psd', 'tga', 'taga',
'png', 'tif', 'tiff']
video_extenstion = ['mp4', 'm4v', 'avi', 'wmv', 'mwa', 'asf', 'mpg', 'mpeg', 'ts', 'mkv', 'mov', '3gp', '3g2','gif',
'webm']
filename = request.args.get('filename', '파일이름')
file_extenstion = filename.split(".")[-1]
if file_extenstion in image_extenstion:
path = './member_img_downloads/' + filename
elif file_extenstion in video_extenstion:
fn = filename.split(".")[0] + ".jpg"
path = './thumnail/' + fn
else:
flash('예기치 못한 오류가 발생했습니다.')
return render_template('/user_templates/save_file.html')
if session.get('u_id'):
image = ImageInfo()
image.url = path
image.user = session['u_id']
image.date = datetime.now()
image.name = filename
db_session.add(image)
db_session.commit()
return redirect('/mypage')
else:
flash('로그인 후 이용가능합니다')
return render_template('/user_templates/main.html')
3. 마이페이지 내 image 삭제 기능 구현
@app.route('/delete_image', methods=['GET', 'POST'])
def delete_image():
name = request.args.get('name', '파일이름')
i_delete = db_session.query(ImageInfo).filter_by(name=name).first()
if i_delete:
db_session.delete(i_delete)
db_session.commit()
flash('글이 삭제되었습니다.')
return redirect('/mypage')
else:
return render_template('/user_templates/main.html')