TIL64. django로 앱 만들어보기(1)

Jaeyeon·2021년 3월 24일
0
post-thumbnail

세션 진행: 승현님

MTV: 웹 프로그래밍 영역을 3가지 개념으로 나눠서 개발하는 방식

장고는 모두 클래스로 진행된다.

Model : 데이터베이스 테이블 정의
View: 로직 처리(예를들어 은행가서 입금하려면 은행원 계좌조회 - 금고에 저장 - 계좌에 있는 숫자 수정을 로직이라고 한다.) 데이터베이스를 잘 보관-꺼내오기 위한 과정?
Template: 사용자가 보게 될 화면의 모습을 정의 (위코드에서는 다루지않는다. 이부분은 프론트엔드에서 다룰 예정 html과 css로 구성)

django 앱 만들어보기

1. conda activate test로 가상환경 접속

(베이스로도 가능하나 가상환경에 장고를 설치 해놨음)

2. django 관련 디렉토리로 들어간다.

3. django-admin startproject 프로젝트명 을 사용하여 프로젝트를 새롭게 생성

이번프로젝트는 장고 공식문서를 따라 mysite라는 프로젝트를 만들었다
django-admin startproject mysite


4. 만들어진 프로젝트안에 들어가면 자동으로 생성된 mysite폴더와 manage.py있는데 manage.py는 많은 명령들을 수행시키는 유틸리티이다

5. python manage.py runserver를 입력하면


위의 사진과 같이 접속할 수 있는 사이트가 나오고 그 사이트로 접속하면 로켓이 나온다.

6. mysite폴더 안에 파이썬 파일들을 보면

__init__.py: 이 디렉토리가 패키지라는 것을 알려준다
settings.py: 중요한 설정들을 할 수 있게 된다.
urls.py: 중요한 주소 경로부분에 대해 설정할 수 있다.

위의 사진처럼 되어있다면 아까 설정한 사이트 뒤에 path(admin/)이라는것을 붙히고 들어가면 admin.site.urls로 연결해줘라 라는 뜻이다.
wsgi.py: 웹서버게이트웨이인터페이스를 의미하고 호스팅해서 서버에 올려 서비스할 때 필요 지금당장은 필요없다.

7. python manage.py startapp 앱이름 : 앱을 만든다.

이번프로젝트는 장고 공식문서를 따라 polls라는 이름을 가진 앱을 만들었다.

9. polls/views.py 파일을 열고

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You`re at the polls index.")

위와 같은 코드를 입력한다.
인덱스로 request가 들어오면 httpresponse (보여주게된다) 뒤의 문자들을 출력해달라.

10. polls/urls.py 만든 후 파일을 열고

from django.urls import path

from . import views
d
urlpatterns = [
    path('',views.index,name = 'index'),
    ]

위와 같은 코드를 입력한다.
0000000000/polls/ 뒤에 아무것도 없으면 views의 인덱스함수로 안내하겠다.

11. mysite/urls.py에 들어가서

from django.contrib import admin
from django.urls import include,path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

를 입력한다.
할당받은 도메인 뒤에 polls가 붙으면 polls.urls로 안내한다.
다른 url패턴을 포함할 때 마다 항상 include()를 사용해야 하며 admin.site.urls가 유일한 예외이다.

12. python manage.py runserver를 터미널에 입력해서 나오는 주소를 복사 후 뒤에 /polls를 붙히면

Hello, world. You`re at the polls index.

라는 문구가 띄워진다.

13. 경로정리 mysite/urls.py -> polls/urls.py -> polls/view.py

profile
생각하는 개발자 되기

0개의 댓글