modelform은 다음과 같이 이루어진다. 원래는 post_form.html의 1번이 있다면,forms.py의 class(forms.Form)에서 models.py(models.Model)로 전달되었다가, DB로 전달된다. 그런데 ModelForm을 선언하면, model을 기반으로 form을 자동으로 만들어준다.class 클래스명(forms.ModelForm): class Meta: model = 모델명 fields = [필드명 1, 필드명2, ...] 또는 '__all__'로 만든다. 필드를 각각 안 만들거라 하면 all을 쓰는 것이다.forms.py에 적는다.from .models import Postclass PostModelForm(forms.ModelForm):..
Form 태그는 하나 이상의 위젯으로 구성된다. action : 처리 요청 urlmethod : 처리 요청 방식 / get,postenctype : post 방식에서만 유효. multipart : 파일 업로드 가능application/x-www-form-urlencoded (default) 확인을 누르면요청 정보 안에 담겨서 전달이 된다. 위젯 아래에 name 속성이 있다. 해당 이름이 변수 이름이다.pwd = 1004 get 방식은 화면에 그대로 전달되는 데이터가 보인다.헤더에 붙는다.전달되는 질의 문자열이 노출되고, 질의 문자열 길이에 제한이 있다.요청방식 - URI - HTTP 버전 post 방식은 몸체에 질의 문자열이 전달된다.전달되는 질의 문자열이 노출되지 않는다.전달되는 질의 문자열 길이에 ..
일반적인 dp에서 진화한 형태이다. import numpy as npimport sysdef multiply_matrix(A, B, mod): A = np.array(A) B = np.array(B) result = np.dot(A, B) % mod return result.tolist()def power_matrix(A, p, mod): #빠른 거듭제곱 알고리즘 if p == 1: return A if p % 2: #n이 홀수라면, 기본 행렬을 n-1번 거듭제곱한 후, 그 결과에 기본 행렬을 한 번 더 곱한다. return multiply_matrix(A, power_matrix(A, p-1, mod), mod) half = power_m..
템플릿은 뷰함수에서 응답하는 html 파일이다.템플릿이 저장되는 위치는 이미 정해져 있다.mysite/setting.py 에서, 템플릿 환경 설정을 쓴다. TEMPLATES = [dirs에다 경로 지정을 한다. ] Installed_APPS 에 존재하는 app들의 하위에도 위치할 수 있다.예를 들어 앱 이름이 blog면, blog/temlplates과 같은 의미이다. 첫번째로 dirs에서 찾고, 그 다음에 순서대로 install app에 등록된 순서대로 템플릿을 검색하게 된다. 'DIRS' : [BASE_DIR / 'templates'] , templates 폴더를 추가해서, html을 넣는다.이러면 공통으로 사용하는 템플릿을 mysite에 추가해서 넣어주면 된다. 만약 각각 쓰려면 blog/templ..
관계 설정 관계를 설정하는 객체 관계 종류는 다음 3가지가 있다.일대다(1:M) - 고객 하나에는 계좌 여러개필연적으로 계좌라는 테이블의 외부키를 만든다.ForeignKey로 만든다. class ForeignKey(to, on_delete, ""options) to: 일대다(1:M) 관계에서 1에 해당하는 모델명을 지정한다.on_delete : 필수 옵션이다. 참조하는 인스턴스가 삭제되었을 때 처리 방식을 지정한다.CASCADE : 참조 인스턴스 삭제시 함께 삭제한다.class Manufacturer(models.Model): passclass Car(models.Model): manufacturer = models.ForeignKey(Manufacturer, on_delete=models...
앱/ models.py에 정의한다.django.ab.models의 model 클래스를 상속한다. blog/models.pyfrom django.db import modelsclass Post(models.Model): title = models.CharField(max_length=250) body= models TextField() settings.py에서 원래 db로 바꿔놓는다.DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3", }}그리고 터미널에서도 mysite로 간다. migration 작업model을 DB에 반영하기 위해서, 파일..