반응형

Python 18

Python How import statement finds modules and packages

Python How import statement finds modules and packages 파이썬은 module과 package를 어떻게 찾을까? 그 방법에 대해서 알아보자. Import Search 순서 예를 들어, abc 라는 package가 있다고 가정해 보자. 그리고 abc package를 사용하려면 다음처럼 import 해야 한다. import abc 여기서 abc는 단순한 파이썬 파일(모듈일 경우) 이거나 파이썬 파일들을 담고 있는 디렉토리(package의 경우) 이다. 그러므로 해당 파일이나 디렉토리가 어디있는지 파이썬이 찾을 수 있어야 import가 가능할것이다. 파이썬은 다음 3가지 장소를 순서대로 보면서 찾는다. sys.modules built-in modules sys.path..

Python/Python기초 2021.09.09

Python Module & Packages

Python Module & Packages Python Module & Packages에 대해서 알아보자. 파이썬에서 모듈은 변수나 함수 그리고 클래스 등을 모아놓은 파일이다. 따로 모듈로 모아놓은 이유는 다음과 같다. 다른 파일에서 재사용이 가능하게 하고 전체 코드가 한 파일에 넣기에는 너무 커졌을때 여러 파일로 나누어서 정리를 하기 위해서 예를 들어, List의 총 요소 개수를 알고 싶으면 len 함수를 사용하면 된다. my_list = [1, 2, 3, 4, 5] my_list_length = len(my_list) print(my_list_length) 하지만 len 함수를 직접 구현한적은 없다. 파이썬에서 이미 모듈로 구현해놓았음으로 그냥 가져다 쓰면 되는 것이다. 이렇게 모듈은 다른 사람들이..

Python/Django기초 2021.09.09

Python Class

Python Class Python Class에 대해서 알아보자. class의 사전적 의미는 굉장히 많이 있다 그 중 코딩에서 사용되는 class의 의미는 '부류'에 가깝다. 부류의 뜻은 "동일한 범주에 속하는 대상들을 일정한 기준에 따라 나누어 놓은 갈래" 라는 뜻이 있다. 즉 공통점이 많은 것들을 가리켜 "같은 부류" 라고 한다. 예를 들어 유재석 양세형 유병제 지석진 등의 공통점은 4사람 다 '코미디언'이란 직업을 가지고 있다. 이때 '코미디언'이 class가 된다. 그러나 '코미디언'이라는 것은 개념일 뿐이다. 코미디언의 실체 (instanace) 는 지석진, 유재석, 양세형, 유병재이다. 이 실체(instance)들을 object(객체) ..

Python/Python기초 2021.09.09

Python Scope

Python Scope Python Scope에 대해서 알아보자 scope는 범위라는 뜻이다. 프로그래밍 언어에서는 scope는 어떠한 객체(변수,함수 등)가 유효한 범위를 말한다. 범위를 벗어나면 해당 객체는 사용이 불가능한다. Python에서 scope는 항상 객체가 선언된 지점에서 위로는 상위 객체 까지, 아래로는 모든 하위 객체들과 그 안에까지 범위이다. 범위는 크게 4가지이다. Local Scope Enclosed Scope Global Scope Built-in Scope local이 제일 범위가 제한적이고 Built-in이 가장 범위가 넓다. 1. Local Scope Local scope을 가지고 있는 변수나 함수 혹은 객체는 이름 그대로 특정 범위에서만 유효하다. 주로 함수 안에서 선언된..

Python/Python기초 2021.09.09

Python Nested Function

Python Nested Function Python 중첩함수는 왜 쓰는 것일까? 가독성 Closure 에 대해서 알아보자. 함수를 중첩해서 쓰는것이 Nested Function함수이다. 일명 중첩 함수! def parent_function(): def child_function(): print("this is a child function") child_function() parent_function() 위 와 같이 나타낼수 있다. 그럼 중첩 함수는 왜 쓰는 것일까? 가독성 Closure 1. 가독성 함수를 사용하는 이유는 반복되는 코드블럭을 함수로 정의해서 효과적으로 코드를 관리하고 가독성을 높이기 위함이다. 중첩 함수도 사용하는 이유는 동일하다. 함수 안의 코드 중 반복되는 코드가 있다면 중첩 함수..

Python/Python기초 2021.09.09

Python Decorator

Python Decorator Python Decorator에 대해서 알아보자. Decorator란? 사전적 의미로 장식또는 장식하는 사람이라는 뜻을 가지고 있다. 그럼 Python에서 무엇을 장식하기 위해서 Decorator를 사용할까? 그건 바로 Function 즉 함수를 사용할때 쓰인다. 어떻게 사용되는지 확인해보자. 예를들어 로또 번호를 찍어주는 업체가 있다고 가정하자. 이 로또업체는 무료회원과 유료회원이 나뉘어져 있으며 보내는 번호가 다르다. 이럴땐 문자를 유료회원가 무료회원을 나눠서 보내줘야한다. def jackpot_lotto_information(): return "계시가 내려졌습니다. 1 5 12 15 28 35번을 찍으세요!" 위 문자는 유료회원만 받을수 있다고 가정해보자. 그러면 유료..

Python/Python기초 2021.09.09

Django의 코딩 스타일

Django의 코딩 스타일 Django의 코딩 스타일에 대해서 알아보자. 1. 읽기 쉬운 코드? 이 공부를 하는 이유는 간단하다. 읽기 쉬운 코드를 만들기 위해서이다. 읽기 쉬운코드를 만드는 이유는 코드의 가독성이 좋아지고 추후 유지보수도 쉬워지고 가장 좋은건 내가 편하다. 그렇기 때문에 코드는 읽기 쉽게 만들어야한다. 축약적이거나 함축적인 변수명은 피한다. 함수 인자의 이름들은 꼭 써 준다. 클래스와 메서드를 문서화 한다. 코드에 주석은 꼭 달도록 한다. 재사용 가능한 함수 또는 메서드 안에서 반복되는 코드들은 리팩터링을 해둔다. 함수와 메서드는 가능한 작은 크기를 유지한다. 스크롤 없이 읽을수 있는 길이가 적합하다. 위와 같은 사항들을 잘 지켜주면 읽기 쉬운 코드가 된다고 한다. 2. 코드 작성에도 ..

Python/Django기초 2021.09.09

Django Backend Westargram 3장(로그인 구현)

Django Backend Westargram 3장(로그인 구현) 2장에서 회원가입을 구현했으면 이제 로그인을 구현해보자. 1. views.py 및 urls.py내용 추가 로그인은 어떤 기능들을 설정해야하는지 우선 생각을 해보자. 인스타는 Email 또는 핸드폰 번호를 사용해서 ID로 사용이 가능하다. ID를 입력했을때 아이디가 맞는지 확인 ID가 맞으면 Password가 맞는지 확인 위 3가지를 코드로 작성 해보자. 아래와 같은 내용을 추가해주자 최상단 import my_settings를 추가 import json, re, traceback, bcrypt, jwt, my_settings class LoginView(View): def post(self, request): data = json.loads..

Python/Django기초 2021.09.09

Django Backend Westargram 2장 (Mysql설정 및 회원가입 구현)

Django Backend Westargram (Mysql설정 및 회원가입 구현) 1.Mysql 설정 Mysql설정을 해보자. Mysql이 설치되었다는 가정하에 진행하도록 하겠다. 만약 설치가 안되어 있으면 .. 구글링 해보면 된다. 그럼 진행해보자. 기본적으로 접속 방법은 다음과 같다. mysql -u root -p 이렇게 mysql에 접속하면 된다. 그리고 이제 1장에서 설정한 이름으로 DB를만들어준다. mysql> create database westargram character set utf8mb4 collate utf8mb4_general_ci; Query OK, 1 row affected (0.11 sec) mysql> show databases; +--------------------+ | ..

Python/Django기초 2021.09.09
반응형