본문 바로가기

반응형

Dev/Python

(6)
[Python] if val 과 if val is not None 어떤 것을 사용해야 하는가 환경: python 3.10 개발을 하다보면 변수에 값이 있는지 없는지를 검사하기 위해 if문을 사용하는 경우가 있습니다. 이 경우, 아래 2개의 코드 중 어떤것을 사용해야 하는지 고민에 빠지게 됩니다. if val: #데이터가 있으니 처리 if val is not None: #데이터 처리 위 2가지 경우는 어떻게 사용하느냐에 따라 사용자가 예상하지 못했던 값을 돌려주기도 합니다. 먼저 if val is not None을 작성하면 python에서는 is 연산자를 호출합니다. is 연산자는 좌/우의 값이 같은 오브젝트인지 확인합니다. (None 변수는 파이썬에서 싱글톤으로 구현되어 있음) 그리고 if val의 경우, if는 다음값으로 boolean이 올 것으로 예상합니다. 하지만 val은 boolean 타..
[django] ModelForm을 사용하여 데이터 등록 환경: django 3.2.8 django 프로젝트 진행 중 ModelForm을 이용하여 데이터를 등록하는 작업을 진행하였습니다. template(html)과 url은 구현이 되어있다고 가정하였을 때, views.py에는 아래와 같이 구현합니다. def registerAcademy(request): form = AcademyForm() if request.method =='POST': form = AcademyForm(request.POST) if form.is_valid(): form.save() return redirect('home') context = {'form':form} return render(request, 'base/academy_form.html',context) 위 코드에서 사용된 ..
hash 값 생성 python에는 hash를 사용하기 위한 라이브러리들이 내장되어 있다. 그 중 md5를 이용하여 아래와 같이 해시 값을 생성할 수 있다. from hashlib import md5 data = 'a' hash_value = md5(data.encode('utf8')).hexdigest() print (hash_value) 아래 파이썬 문서를 확인해보면 해시 알고리즘 생성자는 sha1, sha224, sha256, sha384, sha512, blake2b, blake2s가 있고 md5는 일반적으로 사용할 수 있지만 드물게 빠지는 경우가 있다고 한다. https://docs.python.org/ko/3/library/hashlib.html hashlib — 보안 해시와 메시지 요약 — Python 3.10..
[Python] 내장 함수 __str__, __repr__ Python 3.9 파이썬에는 내장 함수가 구현되어 있습니다. 내장 함수란 자주 사용되는 기능들을 사전에 구현해 놓은 것입니다. 여러 내장 함수들이 있고 그중 __str__과 __repr__에 대해 알아보려 합니다. 시작하기에 앞서 우리가 보통 호출하는 str은 내장 함수 __str__과는 다른 것입니다. str의 경우 흔히 아래와 같이 사용을 하고 있습니다. a=3 print (type(a)) # str_a = str(a) print (type(str_a)) # 위의 예제에서 사용된 str은 내장 클래스를 사용한 것입니다. str(a)는 str이라는 내장 클래스의 생성자 메소드를 이용하여 객체를 생성한 것입니다. 다시 내장 함수로 돌아가도록 하겠습니다. class Color(): def __init__..
[Python] Garbage Collector 프로그램에서 메모리 메모리 관리를 하는 것은 매우 중요합니다. - 사용하지 않는 메모리를 정리하지 않으면 비효율적인 현상이 발생하게 됩니다. - 사용하고 있는 메모리를 정리하면 프로그램이 중단되며 데이터 손상이 발생할 수 있습니다. Python의 메모리 관리 Cpython에서는 아래 2가지 방법을 이용하여 메모리 관리를 합니다. 1. Generational Garbage Collection(세대별 가비지 컬렉션) 2. Reference Couting(러퍼런스 카운팅) 파이썬은 주로 레퍼런스 카운팅을 사용하여 메모리를 관리합니다. 객체를 만들때마다 객체가 얼마나 사용되는지 카운팅을 합니다. 객체가 참조되면 증가하고 해제되면 감소합니다. 세대별 가비지 컬렉션은 주로 사용하는 방법은 아닙니다. 이것은 참조는 ..
[django] 관리자 계정 생성 환경 Django 3.2.8 관리자 생성하기 python manage.py createsuperuser 원하는 사용자이름과 이메일, 비밀번호 입력 후 사용 관리 페이지 주소는 http://127.0.0.1:8000/amdin/

반응형