Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
public:computer:django [2021/08/04 01:28] alexpublic:computer:django [2021/08/24 17:59] (current) – [develop with django] alex
Line 17: Line 17:
   * admin site   * admin site
   * runserver; 상용화를 고려할 때 runserver 대신 apache / nginx 선택   * runserver; 상용화를 고려할 때 runserver 대신 apache / nginx 선택
 +  * 소스 입력 시 한글 사용; #-*- coding: utf-8 -*-
  
  
Line 101: Line 102:
 </cli> </cli>
    
-<sxh>+<sxh python; title: settings.py>
 # settings.py # settings.py
  
Line 170: Line 171:
     * 상속; base.html, home.html, footer.html, ...     * 상속; base.html, home.html, footer.html, ...
   * 인증   * 인증
 +
 +===== 장고 핵심 기능 =====
 +==== Model ====
 +  * 모델 속성, 모델 메소드, Meta 내부 클래스 속성, Manager 속성
 +  * 모델 간 관계
 +    * 1:N(One-to-Many) 관계; N모델에 ForeignKey 필드 정의
 +    * N:N(Many-to-Many) 관계; 한쪽에만 ForeignKey 필드 정의
 +    * 1:1(One-to-One) 관계; 
 +  * 관계 매니저(RelatedManager)
 +
 +
 +==== View ====
 +^  제네릭 뷰 분류 및 역할  ^^^
 +| Base View  | View  | 가장 기본이 되는 최상위 제네릭 뷰. 다른 모든 제네릭 뷰는 View의 하위 클래스.  |
 +| ::: | TemplateView  | 템플릿이 주어지면 해당 템플릿을 렌더링  |
 +| ::: | Redirect View  | URL이 주어지면 해당 URL로 리다이렉트  |
 +| Generic Display View  | ListView  | 조건에 맞는 여러 개의 객체 리스트를 보여줌.  |
 +| ::: | DetailView  | 객체 하나에 대한 상세한 정보를 보여줌.  |
 +| Generic Edit View  | FormView  | 폼이 주어지면 해당 폼을 보여줌.  |
 +| ::: | CreateView  | 폼을 보여주고 폼의 내용으로 DB 레코드를 신규 생성  |
 +| ::: | UpdateView  | 폼을 보여주고 폼의 내용으로 기존 DB 레코드를 수정  |
 +| ::: | DeleteView  | 삭제 컨펌 폼을 보여주고, 기존 DB 레코드를 삭제  |
 +| Generic Data View  | ArchiveIndexView  | 조건에 맞는 여러 개의 객체 및 그 객체들에 대한 날짜 정보를 보여줌.  |
 +| ::: | YearArchiveView  | 연도가 주어지면 그 연도에 해당하는 객체들을 보여줌.  |
 +| ::: | MonthArchiveView  | 연, 월이 주어지면 그에 해당하는 객체들을 보여줌.  |
 +| ::: | WeekArchiveView  | 연도와 주차(Week)가 주어지면 그에 해당하는 객체들을 보여줌.  |
 +| ::: | DayArchiveView  | 연, 월, 일이 주어지면 그 날짜에 해당하는 객체들을 보여줌.  |
 +| ::: | TodayArchiveView  | 오늘 날짜에 해당하는 객체들을 보여줌.  |
 +| ::: | DateDetailView  | 연, 월, 일 기본키(또는 슬러그)가 주어지면 그에 해당하는 특정 객체 하나에 대한 상세한 정보를 보여줌.  |
 +
 +  * 속성 오버라이딩; model, queryset, template_name, context_object_name, paginate_by, date_field, make_object_list, form_class, initial, fields, success_url
 +  * 메소드 오버라이딩; get_queryset(), get_context_data(**kwargs), form_valid(form)
 +  * 제네릭 뷰의 처리 흐름
 +    * ListView; setup() -> dispatch() -> http_method_not_allowed() -> get() -> get_queryset() -> get_context_data() -> get_context_object_name() -> render_to_response() -> get_template_names()
 +    * DetailView; setup() -> dispatch() -> http_method_not_allowed() -> get() -> get_object() -> get_queryset() -> get_context_data() -> get_context_object_name() -> render_to_response() -> get_template_names()
 +  * MRO(Method Resolution Order); 다중 상속에서 동일한 이름을 가진 메소드가 둘 이상의 부모 클래스에 존재할 경우 어느 메소드를 먼저 사용해야 할지 결정하는 알고리즘
 +  * 제네릭 뷰의 페이징 처리
 +    * 페이징 기능 활성화
 +    * Paginator 클래스
 +    * Page 클래스
 +  * 단축 함수
 +    * render_to_response()
 +    * render()
 +    * redirect()
 +    * get_object_or_404()
 +    * get_list_or_404()
 +
 +==== Template ====
 +  * {% include %}
 +  * {% static %}
 +
 +==== Form ====
 +  * 일반 폼; Form 클래스를 상속받아 정의
 +  * 모델 폼; ModelForm 클래스를 상속 받아 정의. 폼 필드의 구성을 데이터베이스 모델 정의 기반으로 폼을 정의하는 경우에 사용. modelform_factory() 함수를 사용해 모델 폼을 정의할 수도 있음.
 +  * 폼셋; 일반 폼을 여러 개 묶어서 한 번에 보여주는 폼. formset_factory() 함수를 사용해 폼셋을 정의.
 +  * 모델 폼셋; 데이터베이스 모델이 기초해서 만든 모델 폼을 여러 개 묶은 폼셋. modelformset_factory() 함수를 사용해 모델 폼셋을 정의.
 +  * 인라인 폼셋; 두 모델 간의 관계가 1:N인 경우, N 모델에 기초해서 만든 모델 폼을 여러 개 묶은 폼셋. inlineformset_factory() 함수를 사용해 인라인 폼셋을 정의
  
 ===== AWS, Heroku ===== ===== AWS, Heroku =====
Line 201: Line 259:
  
   * EC2 서비스 참고 사항   * EC2 서비스 참고 사항
 +
 ^   ^ 장점  ^ 단점  ^ ^   ^ 장점  ^ 단점  ^
 | EC2(Elastic Comput Cloud) 서비스  | 구성 자유도 높음, 비용 낮음  | 작업 난이도 높음  | | EC2(Elastic Comput Cloud) 서비스  | 구성 자유도 높음, 비용 낮음  | 작업 난이도 높음  |
  • public/computer/django.1628008110.txt.gz
  • Last modified: 2021/08/04 01:28
  • by alex