반응형
지금은 페이지에서 파일을 업로드하고 서버에 저장하는 작업을 진행해보자.
파일 선택 - 업로드의 간단한 페이지이니 따로 html을 만들기보단
직접 return에 html을 작성하자
@app_fun.route('/file_upload')
def file():
return '''<form action="/file_upload" method="POST" enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type='submit'>
'''
위와 같은 화면이 나온다.
파일을 선택해서 제출하게되면 form action의 url로 post 방식으로 데이터를 전달한다.
파일을 담아서 던져줘야하기때문에 enctype = "multipart/form-data" 를 명시해주자.
같은 url에 get / post를 이용해서 다른 기능을 구현해보자.
@app_fun.route('/file_upload',methods = ['GET','POST'])
def file():
return '''<form action="/file_upload" method="POST" enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type='submit'>
'''
methods가 추가된 것을 볼 수 있다.
전달된 파일은 request.files로 전달되고,
ImmutableMultiDict([('file', <FileStorage: 'cat.jpeg' ('image/jpeg')>)])
이렇게 전달된다.
우리는 file을 담아 저장하면 되니 아래와 같이 바이트로 읽은 뒤 with open을 이용해서 저장하자.
@app_fun.route('/file_upload',methods = ['GET','POST'])
def file():
if request.method == 'POST':
file = request.files['file']
f = file.read()
name = file.filename
with open(name,'wb') as F:
F.write(f)
return redirect(main)
return '''<form action="/file_upload" method="POST" enctype = "multipart/form-data">
<input type = "file" name = "file" />
<input type='submit'>
'''
반응형
'python > 웹' 카테고리의 다른 글
[파이썬 웹] flask를 이용한 웹페이지 (0) | 2021.10.22 |
---|---|
Flask CORS (0) | 2021.09.27 |
[파이썬 서버] Flask를 잘 써보자 - Blueprint (0) | 2021.08.19 |
[파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [2] (0) | 2021.08.17 |
[파이썬 서버] 간단하게 파이썬 웹페이지 만들기 ( Flask ) [1] (0) | 2021.08.17 |