분류 전체보기

    이벤트(2) - 전파 (Capturing, Bubbling)

    보호되어 있는 글입니다.

    [Django] Django 모델 ForeignKeyField on_delete 종류

    on_delete 옵션은 Django에서 모델을 구현할 때 데이터베이스 상에서 참조무결성[각주:1]을 유지하여 ForeignKeyField가 바라보는 값이 삭제될 때 해당 요소를 처리하는 방법을 지정해 준다. CASCADE : ForeignKeyField를 포함하는 모델 인스턴스(row)도 같이 삭제한다. 1 2 3 4 5 from django.db import models class TestModel(models.Model): pass class FKModel(models.Model): test = models.ForeignKeyField(TestModel, on_delete=models.CASCADE) cs PROTECT : 해당 요소가 같이 삭제되지 않도록 ProtectedError를 발생시킨다. ..

    [Django] Django MTV 개발 방식

    MTV 개발 방식 Django의 MTV 방식은 웹 프로그래밍 영역을 3가지 개념으로 나누어 개발하는 방식이다. Java 웹 프로그래밍에서 MVC 방식과 거의 동일한 개념이라고 한다. MTV 개발 방식의 세 가지 분류는 모델(Model), 템플릿(Template), 뷰(View)이다. 모델 (Model) : 테이블을 정의하는 일종의 데이터베이스 역할을 수행 > models.py 템플릿 (Template) : 사용자가 보게 될 화면(UI)의 모습을 정의 > templates 디렉터리 하위의 *.html 파일 뷰 (View) : 애플리케이션의 제어 흐름 및 처리 로직을 정의 > views.py MTV 개발 방식의 장점 이렇게 셋으로 나눠 개발하면 각 모듈 간에 독립성을 유지할 수 있고, Loose Coupli..

    Python 이미지 파일 해킹하기

    ※ 본 포스팅은 (조성문 정영훈 저) 를 기반으로 작성되었습니다. 개요 (출처: 네이버 웹툰 ) Python은 무시무시한 확장성을 자랑하는 언어이다. 파일을 다루는 방면에서도 아주 강력한 기능을 지원하는데, 바이너리 파일을 열어서 손쉽게 그 내용을 변경하거나 추가할 수 있다. 웹에서 사용하는 다양한 형식의 이미지 파일에 스크립트를 추가하면 강력한 기능을 가진 해킹 도구를 만들 수 있다. 이번 포스팅에서는 비트맵 파일(.bmp) 에 JavaScript를 삽입해서 쿠키를 저장하고 다시 읽어들이는 간단한 코드를 작성하고, 직접 실습해볼 것이다. 이미지 파일 열어보기 일단 이미지 파일이 있어야 해킹할 거리가 생긴다. 글쓴이는 그림판에서 1x1 픽셀 크기의 작은 점 하나만 있는 이미지 파일을 만들어서 dot.bm..

    [Django] Django로 만드는 투표 앱(1) - views.py 설계

    인프런 Django 강좌를 따라 실습하면서 간단하게 투표 기능을 할 수 있는 웹 어플리케이션을 만들어 보았다. 우선 투표 어플리케이션에 사용될 4개의 view를 설계해 보았다. Question Index Page : 최근 등록된 5개의 질문들을 보여주는 페이지 Question Detail Page : 각 질문과 투표를 할 수 있는 User 폼을 보여주는 페이지 Question Result Page : 각 질문에 대한 결과를 보여주는 페이지 투표 액션 : 특정 질문에 대해 투표를 핸들링 현재 Django 프로젝트 디렉터리 구조는 다음과 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 mysite ├── db.sqlite3 ├── manage.py ├── m..

    8. 지정한 위치 읽고 쓰기 - pread(), pwrite()

    개요 지난번 게시글에서는 lseek()를 통해 파일 오프셋을 원하는 곳으로 바꾸어서 파일 입출력을 하는 방법에 대해 다루어 보았다. 한편 리눅스에서는 lseek() 대신 읽고 쓸 파일 오프셋을 지정할 수 있는 read()와 write()와 비슷한 사촌격의 시스템 콜이 있다. 둘 모두 각각의 읽기, 쓰기 작업을 마친 후 파일 오프셋을 갱신하지 않는다. pread()와 pwrite() pread() 시스템 콜을 사용하면 읽을 오프셋을 지정할 수 있다. 1234#include #define _XOPEN_SOURCE 500 ssize_t pread(int fd, void *buf, size_t count, off_t pos);cs pread()를 사용하면 파일 디스크립터 fd에서 pos (지정된 오프셋) 에 있..