소프트웨어 디자인 패턴

✔️ 사용하는 이유?
사용자가 보는 인터페이스와 뒤에서 실행되는 로직들 간에 서로 영향 없이 독립적으로 쉽게 유지보수 할 수 있는 애플리케이션을 만들기 위함이다.


함수 -> 모듈 -> 패키지 -> 라이브러리
프로젝트의 모든 설정을 관리
url과 views를 연결
빈깡통 프로젝트를 만들어도 기본적으로 관리자 페이지가 들어가 있다. 서버주소 뒤에 '/admin'을 치면 다음과 같은 로그인 페이지가 뜬다.



requests : http://127.0.0.1:8000/admin
responses : Django administration 관리자 페이지


✅ MTV 패턴에서의 M,V가 app(articles)안에 존재하는걸로 봐서 각각의 app은 MTV 패턴을 갖는다. project는 MTV 패턴 아니다.



데이터의 흐름대로 코딩을 짜는 것이 좋다.
urls.py -> view -> template
http://127.0.0.1:8000/ # 로켓 페이지
http://127.0.0.1:8000/admin/ # 관리자 페이지
http://127.0.0.1:8000/articles/ # 메인 페이지

def index(request):
return 응답(메인페이지)
request는 사용사의 요청 사항을 모두 적는 변수인데 파이썬의 특성상 def 함수 안의 변수명(request)은 변경이 가능하나 암묵적으로 그냥 request라고 적는다.

최종적으로 firstpjt project의 urls.py에 그 경로에 대한 정보를 적어주면 된다.
articles/이라는 서버 주소를 쓸것이고, views모듈의 index함수를 써서 client에게 메인페이지를 보여줌으로써 응답을 한다.

template은 articles app안에, templates 폴더 안에 있어야하고 template's' 오타 하나라도 있으면 장고는 경로를 인식하지 못한다. template은 사진에서 index.html이다.
⭐중요한 약속
📌1. 모든 view함수는 첫번째 인자로 요청 객체 request를 필수로 받는다.
📌2. template은 반드시 app 폴더 안에 templates 안에 있어야하며, 우리가 직접 만들어줘야 한다.

path('articles/',views.index)
이 주소로 장고 서버에 요청을 보내고 view안의 def를 실행함에 따라 최종적으로 사용자에게 보여져야하는 화면은 가장 오른쪽 화면, 즉 template(index.html)이다.
python manage.py runserver
http://127.0.0.1:8000/
에러가뜬다. template을 만들면 로켓페이지는 더이상 뜨지 않는다.

http://127.0.0.1:8000/articles/

