[강의][Django]3. Django 프로젝트 설계

김예진·2020년 10월 3일
0

강의

목록 보기
3/3
post-thumbnail

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

profile
Backend Developer 🌱 벨로그 내용을 티스토리로 이사중~!

0개의 댓글