본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

전체 글580

[Python] 모범 코딩 전략(2) - 리스트와 딕셔너리 보호되어 있는 글 입니다. 2023. 2. 20.
[구현 완료] 간식 창고 (Django) Github 링크 https://github.com/datamaker-kr/pilot-project GitHub - datamaker-kr/pilot-project: 백엔드 신입 개발자 김주역님의 파일럿 프로젝트 입니다. 백엔드 신입 개발자 김주역님의 파일럿 프로젝트 입니다. . Contribute to datamaker-kr/pilot-project development by creating an account on GitHub. github.com 프로젝트 소개 프로젝트 이름 : 간식 창고 프로젝트 설명 : 직원들은 간식을 신청할 수 있고, 관리자는 직원들이 신청한 간식들을 관리할 수 있는 서비스다. 기술 스택 : Django 진행 인원 및 작업 기간 : 1인, 2023.02.06~2023.02.10.. 2023. 2. 20.
[Python] 모범 코딩 전략(1) - 파이썬의 시작 1. 파이썬의 버전을 파악할 것 python --version 또는 python3 --version - 파이썬 버전은 3이 강력히 권장된다. 2. PEP 8 스타일 가이드를 따를 것 - PEP은 파이썬 개선 제안이라는 파이썬 코드 작성 가이드다. - PEP 8은 깔끔한 파이썬 코드를 작성하는 방법을 자세히 알려준다. - 일관된 스타일을 사용하면 코드에 더 친숙하게 접근하고, 코드를 더 쉽게 읽을 수 있다. 1) 공백 - 탭 대신 스페이스로 들여쓰기를 할 것 - 문법적으로 중요한 들여쓰기에는 4칸 스페이스를 사용할 것 - 라인 길이는 79자 이하일 것 - 긴 식을 다음 줄에 이어서 쓸 경우에는 4칸 스페이스를 더 들여쓸 것 - 최상위 함수와 클래스 선언 사이를 구분 짓기 위해 2줄을 띄울 것 - 클래스 안.. 2023. 2. 16.
[Django] Form 처리 방식 정리 1. 단순한 폼 처리 - 가장 1차원적인 방법이다. - request.GET 또는 request.POST를 이용하여 태그의 name과 일치하는 데이터를 받아올 수 있다. 예시 from django.shortcuts import render def index(request): n = request.POST['n'] a = request.POST['a'] try: n = int(n) except (ValueError): n = 0 try: a = int(a) except (ValueError): a = 0 context = { 'n':n, 'rangeA':range(a), } return render(request, 'users/index.html', context) def givevar(request): .. 2023. 2. 16.
[Django] 단축 함수 장고에서는 웹 프로그램 개발 시 공통적으로 사용하는 기능들을 개발해서 단축 함수로 제공하고 있다. 함수형 뷰를 사용하지 않고 클래스형 뷰만 사용할 것이더라도, 메소드 오버라이딩시 단축 함수를 사용하는 경우도 있기 때문에 단축 함수들은 이해하고 넘어가야 한다. 이번 포스팅에서는 장고에서 제공하는 단축 함수들을 소개할 것이다. 1. render() 템플릿을 클라이언트에게 보여주기 위해 렌더링을 한 뒤에 HttpResponse 객체를 반환한다. render(request, template_name, context=None, content_type=None, status=None, using=None) - request : 클라이언트가 보낸 요청 객체다. 내부적으로 이 객체에 담겨 있는 파라미터들을 사용해 Re.. 2023. 2. 15.
[Django] 제네릭 뷰의 페이징 기능 화면에 표시할 레코드가 많은 경우에 페이지마다 나눠서 보여줄 수 있도록 하는 기능을 페이징 또는 페이지네이션이라고 한다. 이번 포스팅에서는 제네릭 뷰에서 제공하는 페이징 기능을 알아보도록 하자. 1. 페이징 기능 활성화하기 - 페이징 기능은 MultipleObjectMixin의 paginate_by 속성을 지정함으로써 활성화 가능하다. ListView와 날짜 기반 제네릭 뷰는 MultipleObjectMixin을 상속받고 있기 때문에 페이징이 가능한 것이다. - 장고의 페이징 기능이 활성화되면 객체 리스트에는 페이지별로 구분되어 저장된다. 즉, 디폴트 context 변수인 object_list에는 특정 페이지에 해당하는 객체만 담긴다. - paginate_by 속성에는 페이지당 몇 개의 항목을 출력할지 .. 2023. 2. 15.
[Django] QuerySet에서 사용하는 '__'의 의미 1. Field Lookups - exact, contains, in, gt, lt, startswith 등과 같은 필드 룩업을 사용하겠다는 의미 예시 Blog.objects.filter(name__startswith='Beatles') 더 많은 필드 룩업들을 살펴보려면 Field Lookups에 관한 아래 공식 문서를 살펴보길 바란다. https://docs.djangoproject.com/en/4.1/ref/models/querysets/#field-lookups Django The web framework for perfectionists with deadlines. docs.djangoproject.com 2. 외래키 모델 속성 참조 - 외래키 모델의 속성을 참조할 때에도 속성명 앞에 '__'를 .. 2023. 2. 13.
[Django] 공통 context 변수 설정하기 모든 뷰, 템플릿에 적용되는 공통 context 변수는 어떻게 설정할까? 결론부터 말하자면, 딕셔너리 타입을 반환하는 메소드를 하나 만들어서 settings.py에서 TEMPLATE -> OPTIONS -> context_processors에 추가해주면 된다. 1. 딕셔너리 타입을 반환하는 메소드 작성 - 파일을 하나 만들어서 딕셔너리 타입을 반환하는 메소드를 작성한다. 반환되는 딕셔너리의 key, value는 각각 context 변수의 key, value 값으로 추가된다. {'timelist':timelist}를 리턴했다는 사실에 주목하면 된다. import time def get_timelist(self): timelist = [] now = time.localtime(time.time()) now_.. 2023. 2. 11.
[Django] 날짜형 클래스형 뷰에서 404 에러가 발생하는 경우 다른 뷰들은 잘 동작하는데 ArchiveIndexView와 같은 날짜형 클래스형 뷰에서만 404 에러가 발생하는 경우가 있다. 원인은 다음과 같다. BaseDateListView를 상속받는 날짜형 클래스형 뷰들은 allow_empty 속성이 False로 되어있기 때문이다. allow_empty는 레코드가 하나도 없는 경우를 허용하는지의 여부를 뜻한다. 즉, 여러분들은 날짜형 클래스형 뷰에서 allow_empty를 True로 재정의해주면 된다. class SnackAV(ArchiveIndexView): allow_empty=True ... 참고로, django/views/generic/dates.py에 관련 코드가 적혀있다. 2023. 2. 11.