장고의 기본 개념
Django는 MVT(Model, View, Template)패턴이 있다.
- Model : DB와 Django 객체간의 매핑을 해주는 요소이다. ORM(Object Relational Mapping)에서의 엔티티 개념이라고 보면 된다.
- View : Server에서 처리하는 Service단이다. 인증, 검증, 로직진행, DB 저장 등의 비즈니스 로직을 처리하는 영역이다.
- Template : 사용자에게 표시해주는 UI단이다. 정적인 HTML, CSS 대신 특정 문법을 사용하여 동적인 데이터 매핑 및 기능이 작동하도록 해준다.
cd /Users/heoyeonjae/pycharmprojects/test123/pragmatic # 경로확인
code . # vscode 실행
source venv/bin/activate # 가상환경 활성화
** 에러발생....
문제 : 깃 관련 연결이슈 (non-fast-forward 오류 발생)
해결 : git push -u origin main --force
->
1. Pinterest 서비스를 만들기 위해서 Account, Article, Project, Comment와 같은 모듈들을 만들 것이다.
Accountapp 생성
python manage.py startapp accountapp
# 이렇게 하면 기본적으로 필요한 admin, model, view등을 만들어준다.
이후 accountapp을 메인이 되는 pragmatic/settings.py에 추가해주어야 app끼리 연결이 된다.
settings.py의 INSTALLED_APPS에 'accountapp'을 추가해주자.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accountapp',
]
account/views.py 작성
# account의 view.py에 테스트용으로 HttpResponse를 돌려주는 기능을 넣는다.
def hello_world(request):
return HttpResponse('Hello world!')
URL 연결: Routing
어떤 url로 요청이 들어왔을 때 account.app의 기능을 실행할지를 메인 프로젝트인 pragmatic에서 정의한다.
pragmatic/urls.py에 'account/' 패턴을 추가한다.
urlpatterns = [
path('admin/', admin.site.urls),
path('accounts/', include('accountapp.urls'))
]
# path 뒤에는 반드시 슬래시(/)를 넣어주어야 한다.
# include는 import 해오는 패키지이며, 'accountapp.urls'로 두어
# accountapp 내부의 urls.py 내부에서 정의할 url에 접근 시 처리되도록 설정해준다.
accountapp/urls.py를 생성하고, 아래 코드를 작성한다.
accounts/hello_world에 접근하면 view에서 정의한 hello_world 메서드로 요청이 가서 처리되는 구조이다.
from django.urls import path
from accountapp.views import hello_world
app_name = 'accountapp'
# urlpatterns의 path의 인자는 차례대로 경로, 메서드, 이름이다.
urlpatterns = [
path('hello_world/', hello_world, name='hello_world')
]
app_name을 다시 지정한 것은 접근의 편의성을 위한 것이다.
원래 해당 url로 접근하기 위해서는 '127.0.0.1:8080/accounts/hello_world'로 접근해야되지만,
app_name을 지정해주면 나중에 accountapp:hello_world라고만 작성해도 접근이 가능해진다.
python manage.py runserver
장고 실행후, localhost:8000/account/hello_world로 접근하기
'프로그래밍 언어 > Django' 카테고리의 다른 글
[Django로 Pinterest 따라만들기] 개요 (0) | 2024.01.11 |
---|