장고 프로젝트 설치
장고 프로젝트를 설치하기 위해서는 터미널을 사용해야한다.
django-admin startporject 프로젝트명 .
마지막에 . 은 현재 폴더에 파일을 생성하겠다는 의미로 반드시 작성해야한다.
위의 명령어를 실행한 뒤 생성된 프로젝트 폴더를 보면 프로젝트 명으로 된 폴더가 하나 생성이 되어있는 것을 확인할 수 있다.
장고 프로젝트 기본설정하기
장고 프로젝트를 생성한 이후 기본적으로 설정을 해야하는 것들이 있다.
위의 명령어로 실행된 폴더 안을 보면 여러가지 파일들이 들어있다.
settings.py 파일 수정하기
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
DEBUG = True
# 접근 가능한 ip주소
ALLOWED_HOSTS = ["127.0.0.1",
"localhost",]
# 사용하는 앱들
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"todo",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "mytodo.urls"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.debug",
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
WSGI_APPLICATION = "mytodo.wsgi.application"
# 데이터베이스 설정
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
},
{
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
},
{
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
},
{
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
},
]
LANGUAGE_CODE = "en-us"
# 시간 설정하기 "Asin/Seoul"로 한국 시간대 설정
TIME_ZONE = "Asia/Seoul"
USE_I18N = True
USE_TZ = True
STATIC_URL = "static/"
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
맨 처음 작성되어 있는 것에서 본인이 수정하고 싶은 부분만 수정을 해주면 된다.
- ALLOWD_HOSTS : 접근을 허용할 ip주소 및 도메인 주소를 작성하면 된다.
- INSTALLED_APPS : 기본적으로 적힌 app들 및 사용자가 생성해서 사용할 app들을 적어주면 된다.
- DATABASES : 본인이 사용하고싶은 데이터베이스를 적어주면 된다.
- TIME_ZONE : 시간대를 설정할 수 있다. 보통 한국 시간대를 사용하기 위해서는 Asia/Seoul로 작성한다.
urls.py 파일 수정하기
urls.py 파일은 프로젝트에서 접근하기위한 주소들을 작성하는 곳이다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
]
위의 작성 방식처럼 path를 사용해서 적어주며 사용하는 앱들 별로 크게 나눠서 작성할 수 있다.
만약 app1 이라는 app이 있다면 path에 app1 urls에 접근하기 위해서 작성을 추가하면 된다.
urlpatterns = [
path("admin/", admin.site.urls),
# 입력주소 실제 url 들이 모여있는 urls.py 파일
path("app1/", include("app1.urls")),
]
장고 app 설치하기
장고는 기능별로 앱을 따로 만드는데 앱들 별로 큰 기능들을 수행한다.
앱 생성하기
python manage.py startapp App이름
앱 설정하기
앱을 생성 했다면 많은 파일들이 생기게 된다.
1. models.py
각 모델들을 생성할 수 있는 파일로 모델들은 클래스로 정의해서 사용한다.
모델들을 클래스로 정의하기 위해서는 django 에서 지원하는 models.Model을 상속 받아야 한다.
from django.db import models
class 모델_명(models.Model):
변수1 = models.필드 타입(필드 조건),
변수2 = models.필드 타입,
...
2.views.py
모델들에 접근해서 데이터를 처리하고 템플릿에게 접근해서 화면을 보여주게 불러오는 파일이다.
이 기능들을 쓰기위해서는 각각의 함수를 만들어서 사용하면 된다.
from django.shortcuts import render, redirect
from .models import 모델_이름
from .forms import 폼_이름
def 함수_명(request):
처리 코드
return render(request, "html 파일 위치", {"객체_명" : html에서 사용할 객체})
모델과 폼에 접근할 수 있게 import를 작성한다.
def 로 함수를 정의하고 파라미터로 request 와 다른 정보들을 받아올 수 있다.
return 으로 렌더링을 하여 templates에 있는 html과 연동하여 화면을 사용자에게 보여주는 방식이다.
3. urls.py
메인 urls.py와는 다르게 app에서 사용할 url들을 지정하는 곳이다.
from django.urls import path
from . import views
urlpatterns = [
path("", views.함수_명, name="url 이름"),
]
views 와 연동할 수 있도록 views 를 import 한다.
path를 적어줄 때에는 맨 앞에 url 주소를 작성하고 가운데는 views 에 생성한 함수 이름을 넣는다.
이후 마지막에는 url을 불러오기 위한 url 이름을 작성한다.
4. forms.py
html의 form태그에 사용하기 위해서 작성을한다.
작성된 form은 html에서 사용할 수 있고 submit으로 정보를 url에 전달할 수 있다.
from django import forms
from .models import 모델_이름
class 클래스_이름(forms.ModelForm):
class Meta:
model = 모델_이름
fields = ("모델변수_이름", "모델변수2_이름", "모델변수3_이름", ...)
클래스를 작성하여서 사용하는 방식이며 fields 안에 form태그로 사용할 모델의 변수들을 적어준다.
5.admins.py
admin은 관리자로 관리자 페이지에서 접근할 수 있는 모델들을 작성하여 관리자 페이지에서 모델들에게 접근할 수 있게 해준다.
from django.contrib import admin
from .models import 모델_이름
admin.site.register(모델_이름)
6. templates 폴더
templates 폴더는 직접 생성해 줘야하며 그 안에 html 파일들을 넣고 views 에서 html 파일을 사용하기 위해서 미리 만들어 둬야한다.
templates 폴더는 사용자가 만든 app 폴더 안에 만들어야 하며 그 안에는 html 파일들이 존재한다.
'Django(Python)' 카테고리의 다른 글
| Django (1) | 2023.05.26 |
|---|