Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(9)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(9)
1.파일업로드 만들기
1). templates 수정
저번 YaraEventanalysis.html파일에 코드를 추가한다. 추가부분은 저번의 수정한 테이블 위에 파일업로드 부분의 폼을 추가시킨다.
그림1. YaraEventanalysis.html 코드 추가
해당 영상을 보면은 post http 메소드로 form-data를 보내는데 document의 파일로 보낸다는 것이다. 해당 부분을 저장하고 나오면 yaraE 메뉴에 다음과 같이 파일 업로드 부분이 생긴것을 확인할수 있다.
그림2.파일업로드 생성부분
해당부분은 bootstrap 필드를 이용하여 제작하였기 때문에 div 부분 및 파일 input text 및 버튼에 대해서는 bootstrap 홈페이지를 참고하여 주길 바랍니다.
해당 파일 업로드 부분을 만들었다면 직접 파일이 업로드가 되야 한다. Django는 크게 파일업로드시 스토리지 저장 및 DB에 저장하는 방식으로 나뉠수 있다. 나는 yara로 분석하기 때문에 스토리지에 저장하는 방식으로 파일을 업로드 하였습니다.
이제 업로드 하는 양식을 만들껀데 그전에 Django admin폴더의 settings.py로 가서 다음과 같이 셋팅해준다.
그림3.settings.py설정
위와 같이 MEDIA_ROOT 및 MEDIA_URL 을 설정해 준다. MEDIA_ROOT는 저장할 장소를 말하는 거고 MEDIA_URL는 저장할때 URL로 보낼곳을 말한다.
다시 sb_admin으로 돌아와서 urls.py를 맨 끝 소스부분에 아래 그림처럼 추가시켜 준다.
[urls.py] from django.conf import settings from django.conf.urls.static import static if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
그림4. urls.py에 추가시켜주기
Django파일 업로드는 기본적으로 static처럼 기본 서빙이 미지원해주기 때문에 위와 같이 MEDIA_ROOT를 직접 static으로 서빙시켜줘야 한다. 해당부분을 추가시키면 파일 업로드시 해당 파일들을 URL를 리턴해준다.
다음으로 views.py를 코드를 추가시켜준다.
그림5. views.py 코드 추가
저번에 만든 yaraAnalysis에 위의 코드를 추가시킨다.
처음부터 보면은 post 메소드로 들어올경우 위의 document로 파일 데이터를 받는다. 그후 filesystemstorage 클래스를 fs변수에 저장시킨다. 그후 스토리지에 저장하는데(fs.save) 이때 파일이름으로 저장하도록 한다.(upload_file.name)
그후 해시값을 img_key에 저장시키고 yaraS 모듈에 YaraSearch로 데이터를 업로드 파일 및 img_key를 보낸다.
YaraS는 직접 만든 모듈인데 해당 위의 파일들을 불러와서 yara로 결과물을 만들고 만든 결과물을 저장하는 모듈이다. 추후시간에 설명할 예정이다.
그리고 FileSystemStorage는 아래의 import시켜야 되니깐 참고하도록 하자.
[FileSystemStorage 클래스 추가] from django.core.files.storage import FileSystemStorage
이상으로 파일업로드를 마친다. 파일업로드는 아래 유투브 채널에서 자세히 설명되어 있다. 스토리지 업로드 방식및 DB로 저장하는 방식 및 폼으로 연계하기 등 여러가지 있으니 시간남으면 강의를 보는것도 나쁘지 않다.
다음시간에는 해당 파일 업로드된 값을 yara로 돌려보고 DB에 저장해보도록 하겠다.
https://www.youtube.com/watch?v=Zx09vcYq1oc&t;=1s
동영상1. fileupload youtube강의1
https://www.youtube.com/watch?v=KQJRwWpP8hs&t;=1035s
동영상2. fileupload youtube강의2
https://www.youtube.com/watch?v=HSn-e2snNc8
동영상3. fileupload youtube강의3
from http://zerosin13.tistory.com/16 by ccl(A) rewrite - 2020-03-18 22:54:12
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기