Django_app
이번에는 생성된 프로젝트에서 1. app을 추가해 등록해보고 2. 서버 접속시 첫 메인 페이지를 제작해봅시다.
뜬금없이 CRUD를 알아보고 갑시다.
CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말입니다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신 등) 중 가장 기본이라고 생각되는 기술들입니다.
이제 이어서 개발해봅시다.
1. App 생성
지난번에는 프로젝트를 생성하고 setting.py에서 기본 설정만 변경해주었습니다. 이제 app을 생성해봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
## DJ폴더 안에서 django-admin startproject blog / django-admin startproject blog . 두가지 중
## 후자로 프로젝트를 생성하고 진행하겠습니다. 그러면 폴더 구조가 아래와 같습니다.
# DJ
# blog
# manage.py
> python manage.py startapp articles # articles라는 app을 manage.py라는 python파일로 만들겠다.
# 입력 후 폴더 구조
# DJ
# blog
# manage.py
# articles 👈👈
✨Point
1. 명령어는 manage.py가 있는 root폴더안에서 입력해야 합니다.
|
2. 생성한 app을 프로젝트 폴더(blog)에 등록합니다.
1
2
3
4
5
6
7
8
9
10
11
|
## blog/setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'articles', #👈👈
]
|
잠시 django의 개발 패턴을 보면
url로 요청을 접수한다는 것을 알 수 있습니다. urls.py로 들어오는 요청을 접수해봅시다.
3. urls.py 등록
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
## blog/urls.py
"""blog URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('articles.urls')), #👈👈도메인 ''로 접속시 articles.urls로 요청을 보낸다.
]
✨Point
1. 상단에 주석처리되어있는 내용을 읽어보며, 어떻게 url설정을 하는지 파악하는 것이 중요합니다.
|
이어서 articles 폴더에 urls.py 파일을 만들고 url을 만들어 줍시다.
1
2
3
4
5
6
7
8
9
10
11
12
|
## articles/urls.py 생성
from django.urls import path
from . import views #👈👈 articles 폴더에 있는 views.py폴더 사용할 수 있게 등록.
urlpatterns = [
path('', views.main), #👈👈도메인 ''로 접속시 views에 있는 main함수를 동작한다.
]
✨Point
1. blog/urls → articles/urls → articles/views 로 요청을 전달하는 과정을 이해하는 것이 중요합니다.
|
이제는 views를 설정합니다.
3. articles/views.py 세팅
1
2
3
4
5
6
7
8
9
10
11
|
## articles/views.py
from django.shortcuts import render
# Create your views here.
def main(request):
return render(request, 'articles/main.html') #👈👈 main함수는 render함수를 사용해 인자로 받은 request를 articles/main.html에 담아 사용자에게 보여준다.
# 아직 articles/main.html파일이 없습니다. 이제 우리가 사용자에게 응답할 페이지를 만들어야 합니다.
|
이제 마지막 templates를 설정합니다.
4. articles/templates/articles/main.html 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
## articles/templates/articles/main.html 생성
# !+tab 하면 html 기본 프레임이 나옵니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>main 페이지 입니다.</h1> #👈👈
</body>
</html>
|
완성된 화면은 아래와 같습니다.
👀요약
폴더 구조를 이해하면서 진행합시다!
더 알아보기
1️⃣ urls.py를 통해 요청을 전달할때 왜? include를 사용했을까요? django공식문서에는 아래와 같이 설명합니다.
2️⃣ 왜 templates를 만드는데 articles폴더를 안에 하나 더 만들까요?
∴ 이는 1. templates 상속시 오류를 없게 하기 위함과 2. 대규모 프로젝트의 경우 하나의 app안에 다양한 templates 구성이 있는 경우 관리의 편리성 때문입니다.
참고 했던 글