참고: https://wikidocs.net/73306
(1) 앱
장고에서는 기능을 수행하기 위해 '앱'이라는 형식을 사용한다.
프로젝트에 앱을 만드는 명령어는 다음과 같다.
(mysite) C:\(생략)\DjangoProj\mysite>django-admin startapp myapp #앱 이름: myapp
앱이 생성되었으니 필요한 내용과 구현할 기능을 IDE에서 작성하고 개발서버를 구동한 다음
주소 뒤에 '/myapp' 를 붙이면 해당 기능이 구현된 웹 페이지가 띄워진다.
해당 페이지가 제대로 작동하려면 '프로젝트/config/urls.py' 에 url 매핑을 추가해야 한다.
(...)
urlpatterns = [
(...)
path('myapp', 함수명)
(...)
]
(...)
다음과 같이 매핑을 추가하면 'http://주소/myapp/' url 이 요청되었을 때 뒤에 연결된 함수를 실행한다.
웹페이지를 보이기 위해서 '프로젝트/앱/views.py' 파일의 index 함수를 호출한다고 가정하자.
이 경우 url 을 실행했을 때 urls.py 파일에서 'myapp/' 과 매핑된 함수 'views/index' 를 찾아 실행하게 된다.
이 흐름은 다음 그림을 따른다.
(2) 모델
웹 페이지를 작성하다보면 DB를 사용하게 되는데 장고에서는 이 기능도 쉽게 제공한다.
일반적으로는 DB 생성을 위한 쿼리를 작성해야 하는데 장고에서는 쿼리 작성을 하지 않아도 된다.
이것은 ORM 덕분인데, ORM은 'Object Relational Mapping' 이라는 뜻으로,
DB의 테이블들을 모델화해서 사용하기 때문에 쿼리를 작성할 필요가 없다.
참고 자료에서는 sqlite3 를 사용한다.
먼저 데이터 모델을 만드는데, 모델에 필요한 속성과 데이터타입을 정한다.
그 후에 '프로젝트/myapp/models.py' 파일에 모델을 정의한다.
데이터타입은 다음 페이지를 참고하면 된다.
https://docs.djangoproject.com/en/3.0/ref/models/fields/#field-types
Model field reference | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
모델 작성이 끝나면 'config/settings.py' 파일에서 내 앱을 추가하고 migrate 명령을 수행한다.
모델이 변경되었기 때문에 migrate 명령을 바로 실행하는 것이 아닌 makemigrations 명령을 먼저 수행한다.
migrate 명령어를 수행하면 관련 내용이 이동해 내 앱에 적용된다.
(mysite) c:\(...)\DjangoProj\mysite>python manage.py makemigrations
(mysite) c:\(...)\DjangoProj\mysite>python manage.py migrate
모델이 적용되고 나면 장고 셸을 통해 모델을 사용할 수 있다.
장고 셸로 진입하는 명령어는 다음과 같다.
(mysite) c:\(...)\DjangoProj\mysite>python manage.py shell
(...)
>>>
셸에서 미리 작성한 모델의 속성을 고려하며 데이터를 만들 수 있다.
# 예시
>>> (필요한 라이브러리 import)
>>> q = Question(subject='pybo가 무엇인가요?', content='pybo에 대해서 알고 싶습니다.', create_date=timezone.now())
>>> q.save()
데이터 조회와 수정, 삭제는 참고 자료에 자세히 설명되어 있다.
(3) 관리자
웹 페이지를 운영하다보면 관리자의 필요성을 느끼는데,
장고에서는 관리자 기능을 기본으로 제공하기 때문에 사용자, DB 모델 관리 등을 쉽게 할 수 있다.
관리자 페이지에서 제공하는 기능들은 공식 문서에 자세히 소개되어 있다.
https://docs.djangoproject.com/en/3.0/ref/contrib/admin/
The Django admin site | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
'스터디 > Web' 카테고리의 다른 글
[Django] DRF : Serializer 기본 사용법, 유효성 검증 (0) | 2022.01.30 |
---|---|
[Django] DRF : REST API를 통해 장고와 리액트 연결하기 (0) | 2022.01.29 |
[Django] DRF : 장고 모델을 json 객체로 추출하기 (0) | 2022.01.19 |
[Django] 모델 만들고 페이지에서 조회하기 (0) | 2022.01.13 |
[Django] 개발환경 구축하기 (0) | 2022.01.05 |