Backend(96)
-
Django CBV (3) - DetailView
views.py from django.contrib.auth.models import User from django.views.generic import DetailView class AccountDetailView(DetailView): model = User context_object_name = 'target_user' # target이 되는 user의 정보를 보일 수 있도록 template_name = "detail.html" User의 detail한 정보를 보고 싶을 땐 DetailView class를 상속 받습니다. model 은 역시 미리 정의된 User 모델을 가져옵니다. context_object_name = 'target_user'도 지정해줍시다 . 이렇게 target_user를 할당하..
2021.05.23 -
Django CBV (2) - 로그인, 로그아웃 구현
Urls.py 첫줄의 from django.contrib.auth.views import LogoutView, LoginView 에서 LoginView 와 LogoutView 라는 클래스를 상속받았음을 확인할 수 있습니다. from django.contrib.auth.views import LogoutView, LoginView from django.urls import path from account.views import AccountCreateView, hello_world app_name = "account" urlpatterns = [ path('hello_world', hello_world, name='hello_world'), path('create/', AccountCreateView.as..
2021.05.23 -
Django CBV (1) - 회원가입
FBV(function based view)가 아닌 CBV(class based view)로 회원가입을 작성하면, Django가 제공하는 class를 상속받기 때문에 더 간결한 코드로 작성할 수 있습니다. Views.py from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import User from django.views.generic import CreateView from django.urls import reverse_lazy class AccountCreateView(CreateView): model = User form_class = UserCreationForm success_url = ..
2021.05.23 -
Django Bootstrap4 연동
1. 우선 Bootstrap 공식홈페이지에서 CSS CDN을 copy 합니다. https://getbootstrap.com/docs/5.0/getting-started/introduction/ Introduction Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with jsDelivr and a template starter page. getbootstrap.com copy 한 css cdn 을 장고 템플릿 내부에 붙여넣기 해줍니다. 2. bootstrap4 library를 다운로드 받겠습니다. terminal에 pip install django-bootst..
2021.05.23 -
파이썬 메소드 오버라이딩, 오버로딩
메소드 오버라이딩 오버라이딩은 부모 클래스의 메소드를, 자식 클래스에서 재정의 하여 사용하는 것을 의미한다. 예를 들어 부모클래스에서 add()라는 메서드는 2개의 인자밖에 더할 수 없지만, 자식 클래스의 add() 메소드는 오버라이딩되어 3가지의 인자까지 받도록 재정의 할 수 있다. 서브클래스(자식)에서 슈퍼(부모)클래스를 호출 후 사용 메소드 재 정의 후 사용가능 부모클래스의 메소드를 추상화 후 사용가능 (구조적 접근 가능) 확장 가능 + 다형성(다양한 방식으로 동작 -> 부모에서 메소드 하나를 만들지만,사용하는 자식에 따라 다양하게 사용될 수 있다) 가독성 증가, 오류가능성 감소, 메소드 이름 절약(부모가 메소드 이름을 이미 정의해놨기에) dir(),_dict_ 객체 내부 검사 메서드 dir() :..
2021.05.18 -
파이썬 lambda, filter, reduce
시퀀스형: 전처리에 reduce, map, filter 사용 (3형제) 익명함수 Lambda 함수는 흔히 우리가 아는 일반함수와 익명함수로 나눌 수 있다. 익명함수는 일반함수와 달리 호출된 후 즉시 소멸된다. (일반함수는 반환 후에도 메모리 잡아먹는다) 익명함수는 일반함수보다 간결하게 작성하여 사용할 수 있다. 이러한 특성으로 lambda(익명함수)함수는 간결하고 일회성으로 사용할 함수 작성에 사용된다. # 일반함수 def func_name(a, b): return a + b # 익명함수 total = lambda a, b: a + b # 익명함수는 함수명 정하느라 골 아플 일도 없다. (말 그대로 '익명' 함수) lambda 함수 예시 1~10까지의 자연수를 각각 제곱하여 리스트에 저장해..
2021.05.18 -
파이썬 깊은 복사, 얕은 복사 (shallow copy, deep copy)
파이썬 객체 복사 객체의 복사 종류: copy, shallow copy, deep copy 일반 복사, copy 원본 객체의 참조값까지 복사하기 때문에, 복사된 객체의 원소가 달라지면 원본 객체도 달라진다. 특별한 메서드 사용이 아닌, 그저 객체할당으로 복사. # Ex 1 - Copy # call by value, call by refference, call by share a_list = [1, 2, 3, [4, 5, 6], [7, 8, 9]] b_list = a_list print('Ex 1 > ', id(a_list)) print('Ex 1 > ', id(b_list)) # b_list 는 a_list 를 할당받기 때문에 # 같은 주소 참조임을 확인 가능 >>> Ex 1..
2021.05.18 -
[Java] Call by value, Call by reference (feat. new 연산자)
Call by value / reference를 이햐하기 전에 아래의 코드를 먼저 살펴 봅시다. 아래는 두 변수 값을 swap() 하는 예시 코드입니다. class CallByValue package callby; public class CallByValue { public static void swap(int x, int y) { int temp = x; x = y; y = temp; } public static void main(String[] args) { int a = 10; int b = 20; System.out.println("swap() 호출 전: a = " + a + " b = " + b); swap(a, b); System.out.println("swap() 호출 후: a = " + a..
2021.04.25 -
인프런 리프2기 OT
인프런 리프 2기에 참여하게 됐습니다. 개발 공부를 하면서 인프런의 도움을 참 많이 받게 되네요. 제가 수강하게 된 과정은 파이썬 고급 과정으로, 파이썬의 중급 문법과 내부 원리, 동작 메커니즘 등 deep한 내용을 공부하게 됩니다. 평소 Django나 PS에서 주로 사용하던 for, if ~ else 문 과 같은 기본 문법을 벗어나, Lambda, Reduce, Map, Filter 등 여러번의 학습이 필요한 중급 문법을 배우게 됩니다. 모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original) - 인프런 | 강 폭넓은 파이썬 개발 경험, 온오프라인 수업 경험을 바탕으로 파이썬 메타프로그래밍, 깊이있는 문법을 다루기 위한 과정입니다. 더 나아가 파이썬 ..
2021.03.10