파이썬에서 함수에 인자를 전달하는 방식 - Call by object reference 함수에 인자를 전달할 때 사용하는 방식은 크게 2가지다. Call by value Call by reference 그런데 파이썬은, call by object reference란다. (…?) Call by Value def print_val(val): val += 10 print(val) i = 2 print_val(i) # 12 print(i) # 2 파이썬이기 때문에 Call by value라고 하면 안 되겠지만, 어쨌든 결과는 유사하므로 call by value라고 가정하자. Call by value는 i가 print_val의 인자로 넘겨졌을 때 i가 담고 있는 값인 2가 복사되어 val에 할당된 것이다. 그러므..
모델 폼 만들기 폼클래스 정의하는 법을 배웠는데, 모델 폼은 그보다 더 간단하다. 폼을 만들 때에 DB 업데이트가 목적이라면 모델 폼을 쓰는 것이 훨씬 편하다. 폼클래스를 만드려면 원래 필드를 다 지정해줘야 한다. 하지만 모델폼을 사용하면 모델에 있는 필드를 가져다가 쓸 수 있다. from django import forms from .models import Score, Movie # class ScoreForm(forms.Form): # content = forms.CharField( # max_length=100, # label='한줄평', # widget=forms.TextInput(attrs={ # 'class': 'score-content', # &#..
폼 클래스 만들기 장고에서 기본적으로 폼을 처리할 때에는 html 템플릿에서 form 태그 통해서 요청을 보내고, URL conf로 연결된 뷰에서 데이터를 받아서 리다이렉트하는 식이다. 그런데 html 템플릿에서 이 데이터를 받을 input을 일일이 만드는게 번거롭다. 받을 항목 수가 많을 수록 더욱 귀찮은 작업이 된다. 이를 조금 더 간단하게 할 수 있는 방법이 폼 클래스를 만드는 것이다. 우리가 모델 클래스 필드를 정의해서 데이터베이스 필드와 매핑하듯이, 폼 클래스 필드도 HTML input 엘리먼트에 매핑된다. 즉 모델 클래스를 만들면 SQL문을 직접 적지 않아도 데이터베이스 필드가 생성되는 것처럼, 폼 클래스를 만들면 HTML input 엘리먼트를 직접 일일이 만들지 않아도 생성할 수 있다. 폼 ..
DB에 테이블 생성하기 DB에 테이블 생성하는 작업은 models.py 에 테이블 정의 admins.py에 테이블 등록 python manage.py makmigrations python manage.py migrate 이런 순서로 이루어진다. 순서대로 하나씩 보자. 테이블 정의 장고에서 테이블은 클래스로 정의한다. from django.db import models class Question(models.Model): question_text = modesl.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text class Choice(mode..
프로젝트 및 앱 생성 장고에서 쓰이는 프로젝트와 앱은 일반적으로 쓰이는 의미와 다르다. 프로젝트 는 전체 프로그램을 의미하며, 이를 몇 개 기능으로 나누었을 때의 서브 프로그램을 어플리케이션(앱) 을 의미한다. 즉 하나의 프로그램(프로젝트)는 여러 개의 앱으로 구성된다. 먼저 장고 프로젝트를 만드려면 장고를 설치해야 한다. python -V # 파이썬 설치여부 확인 pip install Django # pip는 파이썬 3.x버전을 설치하면 같이 설치됨 나는 맥북에 miniconda를 설치해놓은 상태였는데, pip3 는 인식하는데 pip 는 zsh command not found 에러가 났다. .zshrc 파일을 열어서 .bash_profile에 있는 miniconda PATH를 복붙해주니 해결되었다. 장..
장고의 어플리케이션 개발 방식 MVT 패턴 일반적인 MVC 패턴과 용어가 조금 다르다. 기존 MVC에서는 M이 MODEL, V가 VIEW, C가 CONTROLLER를 의미하는 반면, 장고의 MVT에서 M은 MODEL V는 VIEW(하지만 실질적으로 CONTROLLER 역할) T는 TEMPLATE(실질적으로 VIEW) 을 나타낸다. 각 요소들은 다음과 같이 연결된다. 웹 클라이언트로부터 Request 요청을 받으면 URLconf를 이용하여 URL을 분석 분석 결과를 통해 담당 뷰를 결정(로직) 뷰는 로직을 실행하며 DB처리가 필요하면 모델을 통해 처리하고 결과를 반환받음 뷰는 로직 처리가 끝나면 템플릿을 사용하여 클라이언트에 보낼 HTML 파일을 생성함 뷰는 최종 결과로 HTML 파일을 클라이언트에 보내 ..
파이썬 내장 모듈 - 1 개인적으로 공부하면서 기록한 것이기 때문에 어떤 기준에 따라 정렬된 것은 아닙니다. enumerate 리스트, 튜플, 문자열 등 숫자가 있는 자료형을 입력으로 받아 인덱스값을 포함하여 enumerate 객체를 반환 만약 arr = ['a', 'b', 'c'] 의 인덱스 값을 얻고 싶다면 ## 일반적인 루프 ## for i in arr: print(i) # 'a' 'b' 'c' 출력 for i in range(len(arr)): print(i) # 0 1 2 출력 ## enumaerate ## for i in enumerate(arr): print(i) # 0 1 2 출력 for i, name i..
[파이썬] 힙큐(heapq) 이해하기 tree 힙큐 모듈은 이진 트리 기반의 자료구조이기 때문에 일단 트리를 이해해야 한다. 트리는 그래프와 함께 비선형 자료구조이고 루트 노드로부터 밑으로 가지를 뻗어나가는 형태를 하고 있다. _트리의 종류 중 이진 트리(binary tree)는 최대 2개까지만 자식 노드를 가질 수 있다. _(왼쪽 자식 노드, 오른쪽 자식 노드) 이진 트리 중 완전 이진 트리(complete binary tree)는 노드가 위에서 아래로, 왼쪽에서 오른쪽으로 채워진다. heap 힙은 기본적으로 완전 이진 트리를 기본으로 한 자료 구조이다. 일반적으로 배열로 구현되며, 파이썬의 경우에는 리스트이다. 힙에는 max heap과 min heap이 있는데, max heap(최대힙)은 부모 노드의..
- Total
- Today
- Yesterday
- oracle
- Session
- Conflict
- 알고리즘
- JavaScript
- linkedlist
- getter
- youtube data api
- 개발 공부
- c언어
- 자바
- Prefix Sums
- 깃
- til
- 리덕스
- 인스턴스
- GIT
- 제네릭스
- package.json
- rxjs
- react
- Data Structure
- CSS
- this
- Redux
- jQuery
- SQL
- 포인터 변수
- Java
- useEffect
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |