[강의][Django]3. Django 프로젝트 설계
3-1. Django framework flow

=) 알아야하는 것들
- 사용자가 요청한 URL을 어떻게 활성화해서 view중에 어떤 view가 실행되어야하는지를 설정하는 URL conf 방식에 대해 알아보기
- 받은 URL을 view는 어떻게 처리하는지, model쪽에 어떻게 넘기고, template쪽에 어떻게 데이터를 요청하는지
- model에서는 데이터베이스와 어떤 관계로, 어떻게 데이터를 전송하는지..
- template은 어떻게 view에서 온 데이터를 가지고 어떤 작업 후에 클라이언트에게 응답하는지...
3-2. URLconf(urls.py)
URLconf - tempProject(프로젝트이름)/tempPjt(내부기본프로젝트)/urls.py 경로에 존재함.
urlpatterns = [
	path('student/register/', views.student_register),
	path('student/search/', views.student_search),
	path('student/modify/', views.student_modify),
	path('student/delete/', views.student_delete)
]- urlpatterns : urlpatterns 라는 변수명.
- 리스트 [ ] 로 묶여있음
- path( ) 함수 사용.
- ,(콤마)로 함수 구분
- 클라이언트 요청 URL : path('student/register/',
 view에서 실행할 함수 또는 메서드 : views.student_register)
 
3-3. View(views.py)
: 클라이언트 요청 URL에 따라 실행하는 view 함수(혹은 메서드)들.
Views - tempProject(프로젝트이름)/student(애플리케이션이름?)/views.py 경로에 존재
def student_register(request):
  # 데이터베이스 등을 이용한 프로그램 실행 결과
  return HttpResponse( )- student_register : 함수명
- request : 매개변수인 request 객체
- return HttpResponse( ) : Response 객체로 반환
3-4. Model(models.py)
Model - tempProject(프로젝트이름)/student(애플리케이션이름?)/models.py 경로에 존재
: ORM(Object Relational Mapping) 사용.
: SQL query문을 class를 이용해서 맵핑(?) 
: 테이블 생성 이름 = 애플리케이션이름_클래스명(소문자)
ex)
class Student(models.Model):
  s_name = models.CharField(max_length=30)
  s_major = models.CharField(max_length=30)3-5. Template(*.html)
Template - tempProject(프로젝트이름)/tempPjt(내부기본프로젝트)/setting.py에서 Template파일 검색, 디렉토리 정의  
: Template은 django에서 만들어주지 않음(?). 내가 임의로 만들었기 때문에 django가 template 파일을 찾을 수 있도록 알려주어야함. 👉🏻 INSTALLED_APPS에서 경로를 추가하면됨!
3-6. 프로젝트 설정
: (/내부기본프로젝트이름/setting.py) 에서 프로젝트의 전체적인 설정 담당.
: 모든 애플리케이션을 설정파일에 등록해야함.
: INSTALLED_APP에서 애플리케이션이름.apps.클래스명으로 추가
- 개발모드와 운영모드 설정
- 개발 모드 : 아직 상용화 x
- 운영 모드 : 상용화 되었음 👉🏻 서버 고유의 IP 존재
DEBUG = True  # 개발모드
DEBUG = False # 운영모드 
  
ALLOWED_HOSTS=[localhost','127.0.0.1]
# 개발모드일 때는 입력하지 않아도 자동으로 local host로 정의
# 운영모드일 경우 해당 서버 IP 주소 입력3-7. 기본 사용자 및 그룹 테이블 생성
- 
사용자 및 그룹 테이블 생성 : python manage.py migrate
 
- 
데이터 베이스 변경 사항 반영
 :python manage.py makemigrations
 :python manage.py migrate👉🏻 꼭 migrate를 해주어야 데이터베이스 변경 완료됨!
 
- 
관리자계정 생성 : python manage.py createsuperuser
 +) 관리자 계정, 암호 등이 생성되어야 관리자 테이블에 접속이 가능.
 
- 
서버 구동 : python manage.py runserver
 
Author And Source
                            
                            이 문제에 관하여([강의][Django]3. Django 프로젝트 설계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://velog.io/@yejin20/강의Django3.-Django-프로젝트-설계
                            
                            
                            
                                저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
사용자 및 그룹 테이블 생성 : python manage.py migrate
데이터 베이스 변경 사항 반영
: python manage.py makemigrations
: python manage.py migrate  👉🏻 꼭 migrate를 해주어야 데이터베이스 변경 완료됨!
관리자계정 생성 : python manage.py createsuperuser
+) 관리자 계정, 암호 등이 생성되어야 관리자 테이블에 접속이 가능.
서버 구동 : python manage.py runserver
Author And Source
이 문제에 관하여([강의][Django]3. Django 프로젝트 설계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yejin20/강의Django3.-Django-프로젝트-설계저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)