1202 TIL

looggi·2022년 12월 2일
1

스파르타 내배캠 AI-3

목록 보기
84/130

FEEDBACK

결제모델/카트모델/새로 만들 것
결제도 시간 남으면 한번 해봐라
https://developers.nicepay.co.kr/manual-auth.php


HTTP: HyperText Transfer Protocol ➜ 웹 문서를 전달하는 프로토콜
명세: 어떤 약속에 관해 구체적으로 기술한 문서
HTTPMETHOD: 서버의 기본 동작인 CRUD(Create, Read, Update, Delete)과 대응됨
GET : 데이터를 갖고 올 때/프런트에서 서버에 데이터를 읽어서 반환하길 바란다
POST : 데이터 삽입/프런트에서 전송된 데이터를 데이터베이스에 삽입하길 바란다

Restful API
URI에 동사를 사용하지 않고 복수명사 사용
상위개념/하위개념 순으로 작성
세부적인 요청사항은 엔드포인트(url끝단)에서 파라미터를 받아서 처리

✔️참고

  • 장고에서는 기본적으로 트레일링 슬래시가 붙어있지 않는 url로 요청이 들어오면 일치하는 url이 있는지 보고 없다면 슬래시를 붙인 url로 다시 리디렉션하는 설정이 기본

Django Exceptions

django.core.exceptions
https://docs.djangoproject.com/en/3.2/_modules/django/core/exceptions/#ValidationError

The ValidationError exception is raised when data fails form or model field validation. For more information about validation, see Form and Field Validation, Model Field Validation and the Validator Reference.
ValidationErrors that don’t belong to a particular field in a form or model are classified as NON_FIELD_ERRORS. This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors.

Form and field validation

Three types of cleaning methods are run during form processing. These are normally executed when you call the is_valid() method on a form.
In general, any cleaning method can raise ValidationError.
If no ValidationError is raised, the method should return the cleaned (normalized) data as a Python object.

raise ValidationError(
_('Invalid value: %(value)s'),
code='invalid',
params={'value': '42'},
)

Validators are functions (or callables) that take a single argument and raise ValidationError on invalid input. Validators are run after the field’s to_python and validate methods have been called.

  • The to_python() method on a Field is the first step in every validation.
    It coerces the value to a correct datatype and raises ValidationError if that is not possible.
    ex) FloatField will turn the data into a Python float or raise a ValidationError.
  • The validate() method on a Field handles field-specific validation that is not suitable for a validator.

✔️참고

  • python에서 callable 이란 호출가능한 클래스 인스턴스, 함수, 메서드 등 객체
  • callable 은 함수, 클래스 인스턴스, 메서드 등이 호출 가능한지 점검하는 함수이다.
    호출이 가능하면 True 의 결과값을 전달한다.
    파이썬에는 callable 내장함수가 있다. 이 함수는 스폐셜 메서드인 call 메서드의 존재 유무를 확인한다. 이 메서드가 존재하면 True 이다.
    인스턴스() 하면 실행됨

Django Validations

django.core.validators

from django.db import models
from django.core.validators import MinLengthValidator

class Post(models.Model):
	content = models.TextField(validators=[MinLengthValidator(10, '10자이상 적어주세요')])
    

🪨 Stone Coffee 프로젝트 2일차

  • DATETIMEFIELD/DATEFIELD는 editable=False & blank=True

  • What is the purpose of app_name in app's urls.py or app_namespace in main urls.py?

    • app/urls.py app_name ➜ application namespace
    • main/urls.py path('',include('app.urls
      ))
  • 모델에 기존 DB가 남아있는 상태에서 새로운 필드를 만들어주면 마이그레이션 후, 데이터를 추가했을 때 기존 데이터들은 해당 field가 없기 때문에 에러가 난다. 그래서 field 값이 없을 때 default 값으로 None을(Null) 넣어준다. null=True

  • on_delete 옵션 (결제, 장바구니 모델 추가할 경우 해당 모델들은 독립적인 게 좋다는 구동엽튜터님의 말 때문에...)
    https://vallhalla-edition.tistory.com/60

profile
looooggi

0개의 댓글