본문 바로가기
  • 실행력이 모든걸 결정한다
반응형

전체 글580

[Django] 가상 환경에서 Django 사용하기 1. 파이썬의 가상 환경 가상 환경은 독립된 공간을 만들어주는 기능으로, 라이브러리 간의 버전 문제로 인한 충돌을 막기 위해 사용된다. 파이썬에서는 프로젝트별로 독립된 가상 환경을 만들어주는 virtualenv 툴과 venv 모듈을 제공한다. virtualenv와 venv는 기능으로써는 큰 차이가 없고, venv는 virtualenv와 달리 파이썬 3.3부터 표준 라이브러리로 포함되어 있어 별도의 설치 과정이 필요가 없다는 차이 정도가 있다. 이번 포스팅에서는 venv 모듈을 사용해서 가상 환경을 만들어보고, Django를 사용할 환경까지 구성해볼 것이다. 2. 가상 환경 생성 git bash에서 명령어를 통해 가상 환경을 구축해보자. 1) 가상 환경을 모아둘 디렉토리로 이동 2) 가상 환경 생성 pyt.. 2023. 2. 1.
[Django] wsgi.py의 역할 및 배포 설정 사항 운영 환경에서는 웹 서버가 클라이언트 요청을 수신하고, 웹 애플리케이션 서버를 통해서 장고의 애플리케이션을 호출하는 식으로 동작한다. 참고로, WSGI 규격을 지킨 웹 애플리케이션 서버를 WSGI 서버라고 부르기도 한다. 이번 포스팅에서는 웹 서버와 장고를 연결해주는 wsgi.py에 대해 알아본 뒤에, 배포 전에 해둬야 할 설정 사항들을 알아볼 것이다. 1. wsgi.py import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') application = get_wsgi_application() - 장고와 웹 서버를 연결하는 데 필요한 파.. 2023. 1. 26.
[Django] apps.py의 역할 1. apps.py란? - 프로젝트의 전반적인 항목들을 설정하는 곳은 settings.py이고, 각 애플리케이션에 대한 항목들을 설정하는 곳은 apps.py 파일이다. from django.apps import AppConfig class BlogConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'blog' - 앱의 별칭을 부여하거나 시그널 수신자를 등록하는 데 많이 쓰인다. 2. 활용 예시 - 앱의 별칭 설정 - 앱의 별칭은 verbose_name 속성을 통해 설정한다. from django.apps import AppConfig class BlogConfig(AppConfig): default_auto_fiel.. 2023. 1. 26.
[Django] 프로젝트 개발 순서 1. 애플리케이션 설계 - UI, 테이블, 뷰의 흐름을 설계하는 단계다. 2. 프로젝트 뼈대 만들기 1) 기본 설정 - Django 프로젝트를 처음 생성하자마자 미리 해두면 편한 기본 설정이다. 프로젝트 설정은 mysite/settings.py에서 진행하도록 하자. - 기본 설정은 아래 포스팅의 [5. 기본 세팅(권장)]을 참고하자. https://kimcoder.tistory.com/339 [Django] Django 소개 / 프로젝트 생성 1. Django 소개 - Python 기반의 Web Framework들 중 하나로, MVT(Model-View-Template) 패턴을 따른다. 장고는 MVC 패턴의 View를 Template, Controller를 View라고 부른다. - 장고에서는 전체 프로그.. 2023. 1. 25.
[Django] 로깅 1. 장고의 로깅 - 파이썬의 로깅 체계를 따르면서 일부만 추가되었다. - settings.py에 정의된 LOGGIN, LOGGIN_CONFIG 속성을 참고하여 로깅 관련 설정을 처리하는데, 이 속성이 없더라도 리폴트 로깅 설정으로 처리한다. 2. 파이썬의 로깅 모듈 1) 로거 - 로그 메시지를 처리하기 위해 메시지를 담아두는 곳 - 모든 로거는 이름과 로그 레벨을 갖고 있으며, 로그 레벨은 어느 레벨 이상의 메시지를 처리할지에 대한 기준이다. NOTSET (정수 값 0) : 리폴트 로그 레벨 DEBUG (정수 값 10) : 디버그 용도로 사용 INFO (정수 값 20) : 일반적인 정보 WARNING (정수 값 30) : 주의할 만한 문제점에 대한 정보 ERROR (정수 값 40) : 주요 문제점에 대.. 2023. 1. 24.
[Django] 클래스형 뷰와 제네릭 뷰 소개 장고에서는 뷰를 클래스로도 작성할 수 있으며, 함수형 뷰보다는 클래스형 뷰가 더 이점이 많다. 이번 포스팅에서는 클래스형 뷰와 제네릭 뷰에 대한 감을 잡아보자. 1. 클래스형 뷰의 장점 - 다중 상속과 같은 객체 지향 기술을 사용할 수 있기 때문에 코드를 재사용하기 편리하다. 그래서 공통 기능들을 추상화한 제네릭 뷰와 다른 클래스에 부가 기능을 제공하는 믹스인 클래스 등도 활용할 수 있게 된다. - HTTP 메소드에 따른 처리 로직을 IF 문이 아닌 메소드로 구분할 수 있기 때문에 코드의 구조가 깔끔해진다. - 규모가 큰 프로젝트에 강하다. 2. 클래스형 뷰 정의 - django.views.generic의 View 클래스를 상속받는 뷰 클래스를 정의했다. 뷰 클래스는 views.py 파일에 작성한다. -.. 2023. 1. 24.
[Django] 템플릿 시스템 1. 템플릿 시스템과 렌더링 - 템플릿 시스템은 템플릿 문법으로 작성된 템플릿 코드를 해석하여 HTML, XML, JSON 등의 파일로 결과물을 만들어주는 시스템이다. - 템플릿 코드를 해석하는 과정을 렌더링이라고 한다. - 장고의 코어 템플릿 엔진은 DTL(Django Template Language)이며, 기본적으로 지원되는 Jinja라는 템플릿 엔진도 사용한다. 다른 템플릿 엔진도 설치시 사용 가능하다. 2. 템플릿 시스템 관련 설정 - 팀플릿 시스템 관련 설정은 settings.py의 TEMPLATES 항목에서 한다. TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(B.. 2023. 1. 24.
[Django] 장고 파이썬 쉘 / Model CRUD API 1. 장고 파이썬 쉘 - 간단한 데이터를 관리하거나 UI에서 데이터를 확인하고 싶다면 Admin 사이트를 이용하고, 복잡한 데이터를 관리하는 경우에는 쉘을 이용한다. 이번 포스팅에서는 쉘을 이용하는 방법을 소개할 것이다. - 장고 파이썬 쉘은 다음과 같은 명령어로 실행하면 된다. manage.py에서 정의한 DJANGO_SETTINGS_MODULE 속성을 이용하여 mysite/settings.py 모듈을 미리 임포트 해준다. python manage.py shell 2. Model CRUD API 1) Create - 테이블에 레코드를 생성하기 위해서는 모델 객체의 save() 메소드를 호출하면 된다. 내부적으로 INSERT문이 실행된다. q=Question(question_text="What's new.. 2023. 1. 24.
[Django] Admin 사이트 커스터마이징 1. 테이블 양식 변경 1) ModelAdmin - 테이블의 양식을 변경하려면 ModelAdmin 클래스를 상속받아 새로운 모델 관리 클래스를 만들어서 적용하면 된다. - 예를 들어, Comment 테이블의 양식을 변경하고 싶다면 다음과 같이 작성한다. # admin.py @admin.register(Comment) class CommentAdmin(admin.ModelAdmin): ... ※ 기본 양식을 따르려면 단순히 아래와 같이 admin 사이트에 등록만 해주면 된다. # admin.py admin.site.register(Comment) 2) 레코드 리스트에 보여줄 필드 지정 - 다음과 같이 Comment 모델이 정의되어 있다고 하자. class Comment(models.Model): post=.. 2023. 1. 22.