본문 바로가기
반응형

Django7

Django - MySQL/MariaDB 연결하기 대부분의 서비스용도로 사용하다면, 기본적으로 제공하는 파일 기반의 Database인 SQLlite 보다는 MySQL, 혹은 MariaDB를 통해 Database를 사용하는 것이 확장성에 좋기 때문에 MySQL/MariaDB 연결 방법에 대해서 정리해 본다. 1. mysqlclient 설치 가장 먼저 해야 할 일은 MySQLClient를 설치하는 것이다. Visual Studio 기준으로 env 에서 마우스 우클릭을 통해 Manage Python Packages 에서 mysqlclient를 입력하여 설치할 수 있으며, 이는 pip를 통해 설치한 것과 동일하다. 설치가 완료되면, pip 패키지 설치는 아래와 같이 가능하다. pip install mysqlclient 설치가 완료되면, 패키지가 추가된 것을 확.. 2024. 4. 12.
Python - Mocking/단위 테스트(Unit Test) 과 Django 활용 Mocking? 개발한 코드는 실제 서비스를 제공하기 전에 정상적으로 동작하는지 테스트가 필요하다. 또 서비스중인 시스템에 추가적인 기능 개발이 들어간다면, 테스트를 진행해야 하는데, 실제 서비스를 진행하고 있을 때 테스트를 한다거나, 환경이 다른 네트워크 데이터 베이스 유저등을 수정해야한다면, 개발한 내용에 대한 테스트가 어려울 수 있다. 이렇게 다양한 환경이나 서비스등의 영향이 발생할 수 있는 상황에서 개발된 기능을 테스트하는데 어려움이 있을 수 있기 때문에 이를 돕기 위해 등장한 개념이 바로 가짜 객체(Mock Object)를 만들어 테스트하는 것을 Mocking라 할 수 있다. Mocking은 다음과 같은 문제에 도움을 준다. Mocking이 필요한 경우 위험요소나 복잡도가 높은 경우 매우 효과적.. 2024. 3. 25.
Django 4.x 주요 기능 정리(4.0, 4.1, 4.2) Django 버전이 3.2 에서 4.x으로 올린지 거희 1년이 다되어 가고 있다. 곧 4.2가 나오면 LTS로 변경되므로 (Django의 경우 각 메이저 버전에서 x.2가 LTS 버전이다) 현재 3.x버전을 사용하고 있는 입장에서 4.x버전이 어떤 부분들이 좋아졌는지 중요한 부분들을 요약해 본다. 1. 타임존 관련된 기본 라이브러리 zoneinfo 사용 기존 Django의 기본 Timezone 라이브러리는 pytz 였다. 이를 Python 기본 라이브러리인 zoneinfo로 변경되었다고 한다. 이로써 zoneinfo의 다양한 기능을 기본적으로 사용할 수 있게되었다. pytz 은 Django 4.x까지는 같이 쓰이다가 5.0 부터는 제거된다고 하니 zoneinfo에 대해 의존성이 있는지 확인해보는게 좋갰다.. 2024. 3. 25.
Python - Web Framework - Django, FastAPI 오늘은 Python Web Framework에서 많이 오르내리는 Django와 Fastapi에 대해서 간략히 비교해 보고자 한다. Django 2003년에 출시 되어 현재 가장 많은 인기를 누리고 있는 웹 프레임워크이다. Instagram, Youtube 에서도 사용중이라는 말 다했다. 장점 -Django는 보안부터 DRF(Django Rest Framework), ORM, 서드파티와의 연계 등 대부분의 기능 지원 -바로 사용할 수 있는 Migrate를 통한 편리한 admin패널 및 데이터베이스 제공 -거대한 커뮤니티와 상세한 문서 단점 -풀 프레임 워크를 지향하기 때문에 상대적으로 리소스 사이즈가 큰 편 -3.0 부터 ASGI(비동기 인터페이스)를 지원하지만 아직은 느린편 -Django ORM은 SQL.. 2024. 3. 25.
Django - django-admin을 찾지 못할때 django 패키지를 설치했는데 django-admin을 찾지 못한다면, path 경로에 문제가 있을 수 있다. 먼저 자신이 설치한 pip 혹은 pip3의 버전 정보를 통해 python이 동작한 디렉토리를 확인한다. pip -version 확인해보면 아래와 같이 현재 동작한 경로 정보를 알 수 있다. 패키지에서 사용하는 파일은 윈도우 기준으로 위 디렉토리 하위에 LocalCache\local-packages\Python버전 명\Scripts 위치한다. 해당 경로로 이동하여 LocalCache 디렉토리가 있는지 확인한후 따라 들어가도록 하자. PS C:\Users\Han\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0> l.. 2024. 3. 14.
Django - django-admin을 찾지 못할때 django 패키지를 설치했는데 django-admin을 찾지 못한다면, path 경로에 문제가 있을 수 있다. 먼저 자신이 설치한 pip 혹은 pip3의 버전 정보를 통해 python이 동작한 디렉토리를 확인한다. pip -version 확인해보면 아래와 같이 현재 동작한 경로 정보를 알 수 있다. 패키지에서 사용하는 파일은 윈도우 기준으로 위 디렉토리 하위에 LocalCache\local-packages\Python버전 명\Scripts 위치한다. 해당 경로로 이동하여 LocalCache 디렉토리가 있는지 확인한후 따라 들어가도록 하자. PS C:\Users\Han\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0> l.. 2024. 3. 10.
MariaDB - MySQL Strict Mode is not set for database connection 'default' 작은 부분이지만, 추후 오류를 발생시킬 수 있는 부분으로, MariaDB의 경우 호환성 모드로 동작을 하는데 특정 조건에 맞지 않는 경우 자동으로 판단하여 데이터를 입력하게 된다. (예, unsigned 컬럼에 -1 이 입력되면 자동으로 0 으로 변환) 이러한 이유가 발생하는 이유는 STRICT_ALL_TABLES, STRICT_TRANS_TABLES 가 꺼져있어서 발생하며, STRICT_ALL_TABLES, STRICT_TRANS_TABLES이 비활성화 되어 있으면 CHAR, VARCHAR 의 크기를 초과하는 데이터 입력시 에러를 발생하지 않고 가능한 크기 만큼 잘라서 넣게 된다. 이는 운영상 위험이 있을 수 있기 때문에 아래와 같이 STRICT_ALL_TABLES, STRICT_TRANS_TABLES.. 2022. 9. 1.
반응형