목록코딩공부 (37)
슈코딩
https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python co peps.python.org PEP8 은 파이썬에서 사용하는 코드 컨벤션이다. 코드를 어떻게 구상할..
오늘은 추천시스템 프로젝트에서도 검색기능을 만들때 썼었고, 이번 DRF과제에서도 사용을 한 Q 에 대해서 정리를 해보려고 한다. 우선 Q는 간단하게 쿼리 그자체를 객체로 다룰수 있게 하는 class이다. Django 에서 사용하는 filter(), get()같은 ORM안의 옵션을 Q()를 사용하여 동일하게 적용 시킬 수 있다. 특징으로는 and, or 를 적용 시킬수 있다는 점이다. 글로만 설명하면 와닿질 않으니 예제를 보면서 알아봐야겠다. from django.db.models.query_utils import Q from rest_framework.views import APIView class UserView(APIView): def get(self, request): #취미 중 산책이 있거나, 나..
지금까지 Git을 사용할때 나는 소스트리를 사용해왔었다. 그 이유는 첫째, Git을 배울 때 처음으로 배운 GUI가 소스트리였기도 했다. 둘째, 터미널을 활용하는 것은 익숙하지 않기 때문에 프로젝트때 협업하는데에 있어서 실수하거나 Git에러 때문에 버리는 시간을 최소화 하기위한것도 있었다. 그래서 이제는 소스트리로 여러 프로젝트를 진행하면서 Git에 관한 이해도가 높아졌다고 판단을 하고 터미널을 활용해서 Git을 사용하는것을 익숙해지기로 생각을 했다. 우선은 터미널을 활용 하려면 커맨드를 알아야 하는데, 종류가 많고 외워서 하기는 어려울것 같아서 직접 사용하면서 자연스럽게 외워지도록 Git을 사용할때 쓰는 커맨드들을 정리해놓으려고 한다. $ git init .git 하위 디렉토리 생성 (폴더를 만든 후,..
1. DRF (Django Rest Framework) 🤔 DRF란? DRF는 Python으로 개발된 대표적인 웹 프레임워크중 하나인 Django 안에서 RESTful API 서버를 쉽게 만들 수 있게 도와주는 라이브러리이다. 특징 중에서 가장 대표적인 것은 Serialize 기능이 존재한다는 것이다. 그렇다면 Serializer는 무엇일까? #기본설정 pip install django pip install djangorestframework # settings.py INSTALLED_APPS = [ ... , ... , ... , (app_name), 'rest_framework',
오늘은 Django에서 기본으로 제공하는 Admin페이지를 커스텀해서 더 활용도가 높게 바꿔주는 법에 대해서 기록하려고 한다. 이번 DRF특강때 배운내용인데, Admin페이지를 꾸밀수있다는게 신기했고 나중에도 활용을 하기 위해서 정리를 해본다. 우선 코드부터 보면, user APP의 admin.py 에 이런식으로 작성을 했다. 사용 방법은 TabulaInline과 StackedInline 모두 동일 / 스택은 세로로 표시 , 타불라는 가로로 표시 # class UserProfileInline(admin.TabulaInline): class UserProfileInline(admin.StackedInline): model = UserProfileModel def formfield_for_manytomany..
1. Stacktrace 에러 발생했을때, a함수안에 -> b함수안에 -> c함수에서 에러가 났다. 위 에러이미지처럼 어디서 에러가 났는지 보여준다. 이처럼 스택 추적(stacktrace)은 프로그램에서 예외가 발생했을 때 어떻게 함수가 호출되었는지, 어디서 오류가 발생했는지를 특정할 수 있는 수단이다. 문제 발생시 원인 규명에 도움이 된다. 2. 가상환경 설치 venv 가상환경은 패키지들의 버전을 통일해서 개발 할 수 있게 하기위해서 사용한다. 버전이 다르게되면 어떤 컴퓨터에서는 기능이 작동하고 , 어떤 컴퓨터에서는 작동하지 않는 경우가 발생한다. 설치 : python -m venv venv 실행 : venv/Scripts/activate #실행 권한이 없을때 권한 리스트 조회 : Get-Executi..
과제 1. args, kwargs를 사용하는 예제 코드 짜보기 2. mutable과 immutable은 어떤 특성이 있고, 어떤 자료형이 어디에 해당하는지 서술하기 3. DB Field에서 사용되는 Key 종류와 특징 서술하기 4. django에서 queryset과 object는 어떻게 다른지 서술하기 #1 args, kwargs 를 사용한 예제 def average_score(a, b, *args, **kwargs): print(f"평균점수는 {(a+b+args[0]+kwargs['d'])/4} 점 입니다.") return average_score(80, 94, 68, d=90) #2 mutable , imutable 의 특성과 어떤 자료형이 어느것에 해당하는지 서술 Mutable : 변할 수 있는 값..
이번에 장고로 만든 추천시스템 프로젝트를 배포하면서 웹에서 CLI 환경으로 접속해서 배포를 했었는데, 웹에서 하면 불편한점이 여러가지 있었다. 일단 nginx의 default 파일을 수정을 하는데, 방향키로 이동만 했을뿐인데 글씨가 바뀌는 현상도 있었고 서버를 실행해놓고 한동안 그 페이지에서 작업이 없으면 작동을 안해서 다시 실행해야 되는 등 안좋은 점을 발견 할 수 있었다. 그래서 cmd나 shell 로 접속을 하는 방법을 유튜브 영상 도움을 받아서 찾았다. 먼저 AWS 사이트에서 인스턴스를 생성할때 생성하는 키파일이 필요하다. .pem 으로 되어있는 PEM 파일을 C드라이브에 AWS-KEY라는 파일을 만들어 저장하고 AWS 인스턴스 페이지에서 연결할 인스턴스를 선택하고 연결을 클릭한다. 연결을 누르면..
1. Git , Github, Sourcetree Git이란? 프로젝트를 진행함에 있어서 중간중간 commit을하고 무엇이 수정됐는지 알 수 있는 버전 관리 도구이다. commit할때는 commit 메시지를 달아서 무엇을 수정했는지 history만 봐도 한눈에 알수있게 한다. 효율적인 협업의 방법으로 Git을 많이 사용한다. Git의 특징 Branch와 Merge main 브랜치에서 가지(Branch)를 생성해서 독립성을 유지한 채로 개발을 진행 할 수 있다. 다양한 코드를 개발 또는 테스트 해볼 수 있는 환경을 제공해준다. 이후 병합(Merge)를 통해 메인코드에 반영을하거나 삭제할 수 있다. 분산 작업을 효율적으로 할 수 있다. Branch에는 명명규칙이나 전략이 있다. https://www.inbo..
장고 템플릿 언어 Flask에서 볼 수 있는 Jinja2 템플릿 엔진과 같은 형태인 기본적인 문법이 장고에서도 제공이 된다. DB에서 데이터를 가져오거나, 복잡한 수식의 파이썬 코드 결과를 반환해야 할때, views.py 에서 작성해서 템플릿으로 전달을 할 수 가 있다. 템플릿 변수, 템플릿, 필터 , 템플릿 코멘트 등이 있다. 템플릿 변수 템플릿 변수의 사용형식은 {{ }} 로 구성되있다. {{ variable }} 문자, 숫자, 언더바(_) 를 사용하여 변수를 정의 변수의 속성에 접근하기 위한 dot(.) 표현도 가능 정의되지 않은 변수를 만나면 빈 문자열('')을 반환. 이것은 settings.py 의 TEMPLATE_STRING_IF_INVALID 에서 변경할 수 있다. 템플릿 필터 변수에 필터를..