오도원입니다.

건강과 행복을 위하여

반응형

분류 전체보기 305

[Python] 파이썬 Zappa로 flask web app을 AWS Lambda에 서버리스로 구현하기

반드시 알아가야 할 것 1. AWS Lambda 2. 서버리스 3. zappa 4. 파이썬 가상환경 설정하기 5. AWS 액세스 키 생성 후 AWS configure zappa는 파이썬 3.6 이상에서만 동작하므로 반드시 파이썬 3.6 이상인지 확인하라. $ python --version 목차 1. AWS 가입하기 2. 보안 자격 증명 3. AWS CLI2 설치 4. AWS configure 5. 파이썬 가상환경 생성 및 실행 6. 모듈설치 7. 앱 생성 및 실행 8. zappa init 9. zappa deploy dev 10. zappa update 11. zappa undeploy dev 1. AWS 가입하기 goddaehee.tistory.com/175 [AWS] 2.AWS 회원가입 따라하기 [A..

Development/Python 2020.10.13

[Django] 에러 : object has no attribute 'update'

장고로 개발하다가 이러한 문제가 발생했다. Exception Value: 'Student' object has no attribute 'update' ...생략... this_student = Student.objects.get( No=request.data['No'] ) this_student.update( Stduent_No=request.data['Stduent_No'], Phone=this_phone, UpdateTime=request.data['UpdateTime'], Current_Num=request.data['Current_Num'], ) ...생략... 원인. 이유는 즉슨, .get()은 individual object, 딱 하나의 객체를 반환한다. 그러나 .update()는 오직 que..

Development/Django 2020.10.08

[Python] 내장함수 id()

id(object)는 객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수이다. >>> a = 3 >>> id(3) 140709757886928 >>> id(a) 140709757886928 >>> b = a >>> id(b) 140709757886928 위 예의 3, a, b는 고유 주소 값이 모두 140709757886928이다. 즉 3, a, b가 모두 같은 객체를 가리키고 있다는 것이다. 만약 id(4)라고 입력하면 4는 3, a, b와 다른 객체이므로 당연히 다른 고유 주소 값이 출력된다. >>> id(4) 140709757886960 참고. wikidocs.net/32#id

Development/Python 2020.10.06

(Python) if __name__ == "__main__"이란 무엇인가

파이썬 개발을 하다보면 다음과 같은 코드를 자주 본다. if __name__ == "__main__" 위 코드를 그대로 해석하면 "__name__ 이라는 변수의 값이 __main__이라면 다음 코드를 실행하라" 라는 뜻이다. 이 코드를 이해하기 위해서는 파이썬의 코드 실행방식과 __name__ 내장변수를 알아야한다. 1. 파이썬의 코드 실행 방식 C계열 언어 또는 자바와 같은 프로그래밍 언어에서는 항상 main()함수를 시작으로 프로그램을 실행시킨다. 하지만 파이썬은 main함수가 존재하지 않는다. 그렇다면 어떤 방식으로 코드를 실행시킬까? 파이썬은 크게 두 가지 특징을 가진다. 1. 들여쓰기를 통해 코드 실행의 레벨을 결정한다. 2. main이 존재하지 않는다. #include int sum(int n..

Development/Python 2020.10.06

(Django) 테이블 초기화하기; reset table

장고 개발을 진행하다가 테이블명을 잘못 적어서 테이블명을 다시 적고 마이그레이션을 했는데 id값이 엉켜서 이도저도 못하는 상황에 직면했다. 그래서 마이그레이션 파일을 삭제해서 테이블을 초기화하고자 했다. 1. 마이그레이션 파일 삭제 마이그레이션 디렉토리(migrations) 안에 __init__.py 모듈 제외한 모든 파일을 전부 지운다. find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc" -delete 2. 데이터베이스 제거 dp.sqlite3파일을 삭제한다. 다른 DB엔진을 사용한다면 해당 데이터베이스를 삭제한다. 3. 새 스키마 생성 python manage.py makem..

Development/Django 2020.09.14

(Django) QuerySet과 객체 접근방식

1. QuerySet이란. QuerySet은 데이터베이스에서 전달받은 객체들의 list이다. 각 객체들은 DB에서 하나의 record(row)에 해당한다. Python으로 작성한 코드가 SQL로 mapping되어 QuerySet이라는 자료 형태로 값이 넘어온다. ORM 코드가 객체를 불러오지만 실제 DB에 쿼리가 이루어지는 것은 아니다. QuerySet의 lazy한 특성으로 인해 실제 데이터를 가져오기 위해서는 iterate시켜야한다. 2. 객체 접근방식 DB는 column(field)와 row(record)에 데이터가 저장된다. Django에서 필드에 해당하는 부분은 모델의 각 클래스 안에서 지정해준 속성들이다. 레코드에 해당하는 부분은 각 속성에 부여되는 값들이다. 테이블의 레코드마다 dictiona..

Development/Django 2020.09.08

Python. 깊은 복사와 얕은 복사; deep copy & shallow copy

1. 얕은 복사(shallow copy) a = {'name' : 'Kim', 'age' : 18} b = a b['name'] = 'Choi' print('b:', b) print('a:', a) 바로 할당을 할 시 얕은복사가 일어난다. ==로는 deep copy와 shallow copy를 구분할 수 없다. is함수를 써야 완전히 같은지 비교할 수 있다. is의 리턴값이 True일 경우 완전히 같은 값이다. 2. 깊은 복사(Deep copy) 1) import copy import copy a = {'name' : 'Kim', 'age' : 18} c = copy.deepcopy(a) c['name'] = 'Choi' print('c:', c) print('a:', a) 2) import json im..

Development/Python 2020.09.08
반응형