django 2. app 만들기

dev-somi·2022년 1월 17일
0

django

목록 보기
1/13
post-thumbnail

1. django 기본 구조

  • app이라는 작은 단위 안에서 프로젝트를 구현한다. 프로젝트가 복잡해지면 연관된 로직을 모아서 grouping 하고 싶을 때가 있는데, 여러 개의 app을 만들 수 있으며 각각의 app에는 urls.py가 담겨 있다.
  • app 내부에는 view와 함수(def)가 존재해서 구체적인 구현이 가능하다.
  • 사용자가 접속하면 각각의 경로를 누구에게 위임할 것인가를 urls.py를 통해서 코딩
  • 따라서 적당한 app으로 위임이 되며 적당한 view와 def에 위임된다.
  • 이 경우 많은 경우에 DB를 사용하게 되는데, 장고 안에 model이라는 편리한 수단이 있어서 이 모델을 통해 DB에 접속이 가능하다.
  • 따라서 DB에 있는 정보를 받아서 클라이언트에게 응답할 수 있다.

2. 앱 생성

django-admin startapp myapp

3. 라우팅 (urls.py)

from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls'))
]

기본적으로 urlpatterns를 반드시 정의해야 하며 이 안에는 라우팅 정보가 들어가 있다.
admin/ 은 장고가 기본적으로 가지고 있는 관리자 화면으로 이동하기 위한 수단이다.

만약 사용자가 https://127.0.0.1/로 접속을 했을 때
myapp에 있는 views.py에 위임을 하기 위해서 경로에 myapp.urls를 작성해주면 된다.

또한 myapp안에 urls.py를 복사해서 붙여 넣기 해야 사용할 수 있음

즉 내가 생성한 전체 파일들이다.

from django.urls import path
from myapp import views

urlpatterns = [
path('', views.index),
path('create/', views.create),
path('read//', views.read),
path('update//', views.update), # read 뒤에 있는 는 언제든지 바뀔 수 있는 가변적 링크임
path('delete/', views.delete)

경로를 더 추가한 코드이다.

4. 각각의 경로로 접속했을 때 views.py로 전달하려면?

def index(request):
article = '''

<h2>Welcome</h2>
Hello, Django
'''
return HttpResponse(HTMLTemplate(article))

index 함수

  • 클라이언트로 정보를 전달하기 위한 함수
  • 첫 번째 파라미터: 요청과 관련된 여러가지 정보가 들어오도록 약속되어 있는 객체를 전달해줌 (관습적으로 request를 씀)
  • return HttpResponse(): Http를 이용하여 응답을 하겠다는 의미. 괄호 안에는 전달 값을 입력한다.

0개의 댓글