DB API를 통해서 crud를 한다. DB를 조작하기위한 도구 . 디비와 대화 구문: 클래스이름.오브젝트매니저.쿼리셋API 쿼리셋 : 데이터베이스로부터 전달받은 객체목록 #Http 매서드 - POST/ GET 사용자가 파일을 줘(get)이 아니라 어떠한 레코드 생성해(post)이라면 post를 사용해야한다. GET은 url에 직접 노출되어 위험하고 post로 해야 안전하다. 모델(DB)를 건드리는 것은 안전한 post로 요청해야한다. GET : 문서를 가져오다.(R) 디비상태는 바꾸지 않는다. 필요한 데이터는 url에 담는다. 특정 리소스를 가져온다. 반드시 데이터를 가져올 때만 사용해야함 POST : 작성하다. 디비의 상태를 바꾼다.(글 생성 수정 삭제) 필요한 데이터는 http body에 담는다. ..
모델 : 웹 어플리케이션의 데이터를 구조화하고 조작하기 위한 도구, 단일한 데이터 정보를 가짐 저장된 데이터베이스의 구조 model ≠ database 모델은 1대1 매핑됨 모델이 데이터베이스보다 큰 개념이라고 생각하면 된다. ORM :SQL을 잘 알지 못해도 DB조작이 가능, 완벽하진 않음. 생산성에 좋음. 서로다른 시스템간의 호환성을 위해서 사용한다. DB를 객체로 조작하기 위해 orm을 이용한다. models.CharField(max_length = 10) #글자수 제한을 둘 때 사용 models.TextFiled() # 길이가 정해져있지 않을 때 사용 Migrations :장고가 모델에 생긴 변화를 반영하는 방법 *makemigrations :모델을 변경한 것에 기반한 새로운 마이그레이션을 만들 ..
템플릿 상속은 기본적으로 코드의 재사용성에 초점을 맞춤 {% extends %} 자식 템플릿이 부모 템플릿을 확장한다는 것을 알림 반드시 템플릿 최상단에 작성되어야 함 (% block %} - {% enblock %} 하위 템플릿에 재정의 할 수 있는 블록을 정의즉, 하위템플릿이 채울 수 있는 공간 ==>장고 템플릿 설계 철학 1. 표현과 로직(view)을 분리시킨다. 2. 템플릿 상속으로 중복을 배제한다. form 태그 = 사용자로부터 할당된 데이터를 서버로 전송하는 역할 핵심속성 : action :입력시 데이터가 전송될 url지정 method : 입력 데이터 전달 방식 지정 input에서 name 는 데이터의 키, value는 value URLs 웹 클라이언트의 요청에서부터 시작 됨. 프로젝트의 ur..
MVC패턴 = 모델-뷰-컨트롤러 :소프트웨어의 디자인패턴 장고에서는 MVT 패턴 = 모델-템플릿-뷰 모델-데이터베이스관리, 템플릿-레이아웃(화면),뷰-중심컨트롤러(심장) 장고는 app을 만들어줘서 거기서 만든것을 보여줄 수 있다. 1. app이름은 복수형 2. app 생성(startapp) 후 등록 앱을 입력해주는 순서 1.로컬 앱 (ex. 'articles') 2. 서드파티 라이브러리 3. 장고 코어앱 콤마를 붙여주는것 , => 트레이링 콤마 에러뜨는 것을 방지해주는 개념 Laguage_code = 'ko-kr' //한국 언어로 번역해줌 (#Internationalization 국제화 라이브러리) Time_Zone ='Asia/Seoul' //대륙이름/서울시간 장고는 기본적으로 첫번째 인자에다가 자동적..
큐:FIFO 선입선출 선형큐: 1차원 배열을 이용한 큐 -큐의 크기 = 배열의 크기 -front :마지막에 꺼내진 원소의 인덱스 -rear : 저장된 마지막 원소의 인덱스 *상태표현 -초기상태: front = rear = -1 -공백상태: front = rear -포화상태 : rear =n - 1(배열의 마지막 인덱스) *선형 큐 이용시 잘못된 포화상태 인식을 하여 더 이상의 삽입을 수행하지 않는 현상을 방지하기 위해서 1. 매 연산이 이루어질 때마다 배열의 부분으로 모두 이동시킨다. 2. 처음과 끝이 연결되어있는 원형큐라고 생각하고 사용한다. (남아있는 간에 해서는 활용도가 높아지지만 큐가 가득 차있을 때는 해결되지 않는다.) 원형 큐 -공백상태 : front = rear -포화상태 : 삽입할 rear..
백트레킹알고리즘: 해를 찾는 도중에 해가 아니면 되돌아가서 다시 해를 찾는 기법. 깊이우선 탐색과의 차이: 가지말아야할 곳 가지치기를 하면서 시도 횟수를 줄임. 조기에 차단 분할 정복 알고리즘: 분할/정복/통합 분할: 문제를 작은 부분으로 분할함. 정복: 분할한 문제를 각각 해결. 통합: 해결된 해답을 모은다. 분할 정복 알고리즘을 이용하여 퀵정렬에 사용할 수 있다. 퀵정렬: 주어진 배열을 두개로 분할하고, 각각을 정렬한다. 퀵정렬과 합병정렬과의 차이점: 1. 합병정렬은 그냥 두부분으로 나누고 통합을 해야한다. 2.퀵정렬은 pivot(기준아이템)을 중심으로 작은것은 왼편, 큰것은 오른편에 배치시킨다.
리스트 슬라이싱 a= [1,2,3,4,5] a[-1] : 뒤에 첫번째= [5] (맨 마지막요소) , a[-2]이면 뒤에서 두번째인 [4]가 나온다 a[::-1] : 뒤에서 하나씩 자르면서 = [5,4,3,2,1 ] a[:2] : 끝이 2이면 인덱스 0,1만 = [1,2] a[1:] : 인덱스 1부터 끝까지 = [2,3,4,5] a[1,4] : 인덱스 1,2,3만 = [2,3,4] 리스트 내포방식을 활용한 입력: puzzle = [list(map(int, input().spilt()))) for _ in range(N)] 리스트안에 있는 각 요소들의 합을 구하고 싶을 때 : sum(리스트 이름)
- Total
- Today
- Yesterday
- 프로그래머스
- 세션 스토리지
- SSAFY퇴소
- Python
- SWEA
- 파이썬
- splide
- javascript
- 싸피
- Pyhton
- 배포
- 안드로이드스튜디오
- vue
- 백준
- 자바
- N과M
- 알고리즘
- vue.js
- commit되돌리기
- DOM
- git
- 위클리챌린지2주차
- 독학
- django
- SQL
- 트리
- 비동기패턴
- SSAFY
- AWS
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |