Django

Django로 커뮤니티 사이트 만들기 (0): 기본 개념

Jinmidnight 2023. 9. 17. 15:17
 

GitHub - jinmidnight01/community_answer

Contribute to jinmidnight01/community_answer development by creating an account on GitHub.

github.com

본 내용의 코드는 전부 위 링크에 있으니 참고바랍니다

 


Visual Studio Code, Python은 기본적으로 설치되었다는 전제하에 진행된다

 

우선 로그인 기능이 없는 익명 커뮤니티 사이트를 만들어볼 예정이다

즉, 게시물을 읽고 쓰기, 댓글 달기 기능을 구현할 것이다

(로그인 기능은 추후에 추가할 예정이며, Heroku와 PythonAnywhere을 통해 배포까지 해볼 예정이다)

 


MTV(MVC)

MTV(MVC) 패턴

 

소프트웨어 디자인의 기본 구조는 MVC 패턴을 따른다

Django에서는 MTV패턴이라고도 많이 부른다

개발의 패턴을 Model, Template, View 의 틀에 맞춰서 개발한다는 뜻이다

 

Djagno 개발은 매우 일정한 패턴을 띈다. 

  1. models.py에 class를 만들어서 데이터의 속성을 정해준다
  2. 구현하고자 하는 기능을 views.py에 def의 형태로 만들고,
  3. 기능에 대한 각각의 html 페이지를 구성해서 데이터를 시각적으로 보여준다. 이 html의 형식을 template이라고 부르고, 다시 view에 있는 def에 연결한다.
  4. urls.py에 각 html 페이지별 url 주소를 path로 지정한다.

Model Manager

  1. QuerySet: 전달받은 모델의 객체 목록
  2. Model.objects
    - Manager
    - 데이터베이스 쿼리를 실행하는 인터페이스
    - 각 모델(클래스)은 최소 하나씩 갖고 있음
    - 데이터베이스의 해당 모델을 QuerySet으로 만들게 되며, 그 QuerySet에서 데이터 검색 가능
    - ORM, SQL을 몰라도 데이터베이스를 사용할 수 있게 해준다
  3. 다양한 기능 제공
    ex, count(), all(), filter() 등

HTTP Request Method

  1. GET
    데이터를 수신(GET)하기 위한 요청에 사용
    ex. 페이지의 html 파일을 요청
  2. POST
    주로 새로운 리소스를 생성하기 위해 사용

POST method

 


Static & Media

  1. Static
    프로젝트 입장에서 이미 뭔지 아는 파일
    (개발할 때 미리 준비해둔 파일: img, js, css)
  2. Media
    웹 서비스 이용자들이 업로드 하는 파일