전체 글

전체 글

    Django Model Queryset API / 장고 모델 쿼리셋 API

    Django에서는 Model을 정의하면 ORM을 통해 데이터베이스와 소통할 수 있는 API를 사용할 수 있습니다! API 란? .objects.all() # 모든 데이터 가져오기 .objects.get() # 조건에 맞는 데이터 1개 가져오기 API [ Application Programming Interface ] 란 애플리케이션에서 시스템의 기능을 제어할 수 있도록 만든 인터페이스를 말합니다. 쉽게 말하면 어떤 기능을 쉽게 사용할 수 있도록 만든 체계라고 할 수 있습니다! 위 코드처럼 model 에서 모든 데이터를 가져오게 하는 all() , 조건에 맞는 데이터 1개만 가져오는 get() 같은 명령어들이 모두 API입니다. Queryset Queryset은 Django Model의 데이터가 담겨있는 ..

    Django Validator / 장고 유효성 검증 / Form에서 유효성 검증하기

    Form에서 유효성을 검증하는 것은 모델에서 썼던 필드 옵션과 validator들을 그대로 사용할 수 있습니다. 모델을 쓰지 않는 일반 폼의 경우 각각의 폼 필드를 작성해주어야 하고, 그때 필드 옵션과 Validator를 사용할 수 있습니다. # validators.py from django.core.exceptions import ValidationError def validate_symbols(value): if ("@" in value) or ("#" in value): raise ValidationError("'@'와 '#'은 내용에 포함될 수 없습니다.", code='symbol-err') # forms.py from django import forms from .models import Pos..

    Django Validator / 장고 유효성 검증 / validator 추가하기

    Django 유효성 검증 장고에서 유효성을 검증하는 방법은 2가지가 있습니다. 1. Field를 정의할 때 필요한 옵션 인자로 주기 2. 따로 validator를 추가하기 validator를 따로 추가하여 유효성 검증하기 Validator는 임의의 값을 받아서 내부의 기준을 충족하지 않으면 ValidationError를 발생시키는 함수입니다. Validator는 하나의 필드에 종속되지 않고 여러 필드에서 사용할 수 있으며 Django에서 기본적으로 제공하는 Built-in Validator를 사용하거나 필요하다면 Validator를 직접 구현하여 사용할 수 있습니다. Built-in Validator Built-in Validator는 장고 공식 문서를 참고하면 사용법과 여러 가지 Validator를 확..

    Django Validator / 장고 유효성 검증 / 내장 Field 옵션

    Django 유효성 검증 장고에서 유효성을 검증하는 방법은 2가지가 있습니다. 1. Field를 정의할 때 필요한 옵션 인자로 주기 2. 따로 validator를 추가하기 내장 Field 옵션을 사용하여 Field를 정의할 때 유효성 검증하기 Field 는 두가지 종류가 있는데 Model Field 와 Form Field 입니다. 첫번째로 우선 Model Field에서 유효성 검증을 하는 방법을 알아보겠습니다. 장고에서 Model Field에 유효성 검증을 방법은 models.py 파일에서 각각의 필드마다 유효성 검증을 추가해보면 됩니다. # models.py class Post(models.Model): title = models.CharField(max_length=50) 위와 같은 코드가 작성되어 ..

    Django의 CSRF 방지 / CSRF / Cross-Site Request Forgery

    장고의 CSRF 방지 크로스 사이트 요청 위조(CSRF, Cross-Site Request Forgery)는 웹 사이트에서 유저가 서버로 요청을 보내는 행위를 악의적으로 변경 및 조작한 후 요청을 전송하는 것입니다. 즉 사용자가 요청하지 않은 것도 사용자가 요청한 것처럼 처리되는 것입니다. CSRF 위조의 단계 사용자가 보안이 취약한 사이트에 로그인 후 아이디와 패스워드 등 입력을 서버로 전송시킨다. [ Form 사용 ] 서버가 사용자가 전송한 정보를 보고 정상 유저임을 인증 [ 로그인 성공 ] 이때, 서버로 부터 인증된 사용자라는 정보가 사용자에게도 전달된다. 이 상태에서 사용자가 로그아웃을 하지 않은 채, 악성 사이트로 이동하게 됩니다. 악성 사이트에서 사용자의 정보를 가져오거나, 돈을 송금하는 등의..

    Django traling slash / 장고 트레일링 슬래시

    Django의 Trailing Slash [ 트레일링 슬래시 ] URL 끝에 있는 슬래시를 트레일링 슬래시 (trailing slash)라고 한다. 도메인 끝에 붙은 슬래시는 그 유무에 따른 차이가 없습니다. ex) tistory.com or tistory.com/ 하지만 도메인이 아닌 url에 트레일링 슬래시가 붙을 경우 서로 다른 곳을 가리키는 주소가 됩니다! ex) index/test 와 index/test/ 는 서로 다른 곳! 이런 형태는 과거에는 이 슬래시가 '파일'과 '디렉토리'를 가리키고 있었기 때문입니다. 슬래시가 없는 주소는 '파일' , 슬래시가 붙은 주소는 '디렉터리'를 가리켰기 때문인데요. 현재에는 데이터를 데이터베이스에 저장하거나 가져오기 때문에 URL이 직접적으로 파일이나 디렉터리..

    Django Model Form / 장고 모델 폼 / forms.ModelForm

    Django Model Form Django의 ModelForm은 Django의 강력한 폼 기능 중 하나로 사용자가 작성한 모델을 기반으로 자동으로 폼을 생성해주는 기능입니다! 일일이 폼을 작성하는 것을 원래는 아래의 코드처럼 django Form 클래스를 이용해서 간편하게 처리했지만 ModelForm을 사용하면 더 쉽게 사용할 수 있습니다! def page_create(request): if request.method == 'POST': title = request.POST['title'] content = request.POST['content'] dt_created = request.POST['dt_created'] feeling = request.POST['feeling'] score = requ..

    [웹 프로그래밍 HTML5, CSS] 스타일시트 사용해보기 / stylesheet

    [웹 프로그래밍 HTML5, CSS] 스타일시트 사용해보기 / stylesheet

    CSS 스타일 시트 스타일 시트는 두 가지 방법이 있습니다. 1. 내부 스타일시트 2. 외부 스타일시트 내부 스타일 시트 스타일시트를 가장 손쉽게 사용할 수 있는 방법입니다. style 태그를 사용해 HTML 페이지 내부에 스타일시트를 직접 입력하는 방법으로 사용하실 수 있습니다. 이곳에 출력할 글을 써보세요. 외부 스타일시트 외부 스타일시트는 스타일시트를 별도로 생성하고 link 태그의 href 속성을 사용해 HTML 페이지에 불러오는 방식으로 사용합니다. 첫 번째로 스타일시트를 별도로 생성하기 위해 새 파일을 만든 후 아래 소스 코드를 입력한 후, 파일제목.css로 만들어주세요. [파일 제목 뒤에 .css를 붙여야 합니다.] 그 후 HTML 소스 코드에 link 태그를 사용하여 스타일시트를 불러옵니다..

    Django model DateTimeField 한국 시간으로 설정하기

    문제 발생 class Post(models.Mode): dt_create = models.DateTimeField(auto_now_add=True) auto_now_add 옵션으로 인해 dt_create에는 자동적으로 글을 작성할 때 작성 시간이 저장되게 되는데 이 부분에서 django의 settings.py 에서 TIME_ZONE을 'Asia/Seoul' 로 바꿔도 한국 시간이 아닌 UTC로 저장이 되는 문제가 발생했다. LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Seoul' USE_I18N = True USE_L10N = True USE_TZ = True 해결 방법 간단하게 위 settings.py 파일에서 USE_TZ = True 를 USE_TZ = False 로 바..

    JavaScript Date / 자바스크립트 날짜, 시간 / Date 객체

    자바스크립트 날짜와 시간 Date 객체 자바스크립트는 거의 모든 것이 객체로 이루어져 있는데 그중 날짜 기능을 가진 내장 객체 Date를 알아보겠습니다! Date 객체 생성 [ 현재 시간 ] let today = new Date() console.log(today) /* 출력 2021-12-06T09:54:30.994Z */ 위처럼 코드를 작성할 시, 아래 출력처럼 나오게 되는데, 이때 첫 번째 줄은 today에 이 객체를 생성한 순간이 저장되게 됩니다. 하지만 현재 저는 18시:54분에 코드를 작성했지만 출력에는 09:54분으로 나오는데 이것은 Date는 UTC를 기준으로 객체를 생성해주기 때문에 한국시간보다 9시간이 느린 것입니다. 이것을 보완해주기 위해 현재 컴퓨터에 지정된 표준시간대에 따라 시간을..