2020년 3월 25일 보안정보 스크래핑

2020년 3월 25일 보안정보 스크래핑 3월 25일 보안정보 스크래핑 ==================================================================== + 주요 취약점 - 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 외 1건 1. 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 최근 OpenSMTPD* 취약점이 발견되는 등 메일전송 프로토콜에서 원격 명령어 실행이 가능하여 주의를 권고함 공격자는 취약점을 악용하여 피해를 발생시킬 수 있으므로, 해결방안을 참고하여 조치 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35302 2. Django 제품 SQL Injection 취약점 보안 업데이트 권고 최근 Django*에서 SQL Injection취약점(CVE-2020-9402)을 악용할 수 있는 개념증명코드(Proof of concept, PoC)가 인터넷상에 공개되어 사용자의 보안 업데이트 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35301 ==================================================================== + 취약점 - Apple Safari 취약점 1. Apple Safari 취약점 Apple Safari security bypass CVE-2020-3885 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178339 Apple Safari security bypass CVE-2020-3887 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178338 Apple Safari inform...

[django]장고 개발_9 - 썸네일 , pagination

[django]장고 개발_9 - 썸네일 , pagination

썸네일을 만들기 먼저 설치해야 될 게 있어요

pip install pillow

pip install pilkit

pip install django-imagekit

이 세가지를 설치하시는데 각 각 썸네일을 만드는데 도움을 줘요.

pillow - PIL(Python Imaging Libarary)를 fork 한 것으로, 파이썬 이미지 처리를 도와줘요.

pillkit - PIL, pillow를 쉽게 사용하게 도와줘요.

django-imagekit - 이미지 썸네일 만드는 것을 도와줘요.

pip freeze를 사용해서 잘 설치가 되었는지 확인을 해주시고,

INSTALLED_APPS = [ .... 'imagekit', ]

프로젝트 settings.py 에서 가서 imagekit을 추가해주세요.

from imagekit.models import ImageSpecField #썸네일 함수 from imagekit.processors import ResizeToFill #사이즈조절 class Post(models.Model): #objects = models.Manager() #vs code 오류 발생시 author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField( default=timezone.now) published_date = models.DateTimeField( blank=True, null=True) upload_file = models.ImageField( #유효성 검사를 위해서 ImageField를 사용 blank=True,#해당 속성이 비어도 되는지 유무 null=True,#null이 들어가도 되는지 유무 upload_to="image"#경로 설정 (입력 안하면 uploads에 바로 올라가짐) ) #유효성 검사를 위해서 ImageField를 사용 upload_thumbnail = ImageSpecField( source='upload_file',#원본 IageField이름 processors=[ResizeToFill(120,80)],#사이즈 조정 format='JPEG',#최종 저장 포맷 options={'quality' : 60}#저장 옵션 )

ource='upload_file', #원본 IageField이름

processors=[ResizeToFill(120,80)], #사이즈 조정

format='JPEG', #최종 저장 포맷

options={'quality' : 60} #저장 옵션

app/models.py 에서 Post 클래스에 upload_thumbnail을 추가해주면

페이지가 보이는 템플릿으로 가서

{% if post.upload_file %} {% endif %}

추가하시면 썸네일이 생성이 돼요.

이번에는 페이지로 넘어가는 걸 만들어보겠어요.

먼저 views.py에서 상단에 import를 추가 from django.core.paginator import Paginator

from django.core.paginator import Paginator def post_list(request): post = Post.objects.all() paginator = Paginator(post , 3) page = request.GET.get('page') posts = paginator.get_page(page) return render(request, 'app/post_list.html' , {'posts':posts })

post_list를 변경해주세요.

{% if posts.has_previous %} 맨 앞 이전 {% endif %} {{posts.number}} / {{posts.paginator.num_pages}} {% if posts.has_next %} 다음 맨 뒤 {% endif %}

그리고 post_list.html에 페이지 부분을 추가해주세요.

그러면 실행이 잘되는 걸 확인하실 수 있어요.

메소드 설명 count() 총 객체 수 num_pages() 총 페이지 수 page(n) n번째 페이지 반환 page_range() 페이지 리스트 반화(1부터 시작하는) has_next() 다음 페이지의 유무 has_previous() 이전 페이지의 유무 get_page() n번째 페이지 가져오기 previous_page_number() 이전 페이지 번호 반환

from http://hidaol.tistory.com/23 by ccl(A) rewrite - 2020-03-07 03:54:47

댓글

이 블로그의 인기 게시물

엑스브레인(XBrain) 기업 정보

django 설치 방법

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기