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

Django21

[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.
[Django] 정적 파일 및 미디어 파일 처리 1. static 파일 처리 Django의 웹페이지에 css를 적용하거나 이미지를 추가할 때는 일반적인 파일 경로로 불러와서는 안된다. 왜냐하면 기본적으로 Django에 들어오는 요청은 모두 Controller에서 가로채기 때문인데, settings.py의 STATIC_URL 항목을 통해 정적 파일을 먼저 확인할 수 있게 해야 한다. 즉, settings.py 파일에 다음과 같이 설정되어 있으면 된다. STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] html 파일은 templates 디렉토리에 따로 빼두었듯이, css, javascript, 이미지 파일같은 정적 파일들은 settings.py의 STATICFILES.. 2021. 8. 9.
[Django] Admin 기초 / 동적 URL / views 기초 1. Admin 기초 Django에서는 기본적으로 관리자 페이지를 제공해 주는데, 주로 데이터베이스를 관리하는데 쓰인다. /mysite/urls.py의 urlpatterns에서는, 프로젝트 생성 시부터 'admin/'이 등록되어 있다. localhost:8000/admin으로 접속해보니 관리자 사이트가 나왔다. 관리자 페이지에 로그인하려면 계정을 생성해야 하며, 다음 명령어로 생성할 수 있다. python manage.py createsuperuser 간단하게 Username, Email, Password만 설정하면 관리자 계정 생성이 완료된다. 다시 서버를 켜고 로그인을 시도해보자. 최초로 로그인에 성공하면 Groups, Users 2개의 테이블이 존재한다. Groups, Users 테이블이 보이는 이.. 2021. 8. 9.