바뀜

1,175 바이트 추가됨 ,  2021년 5월 11일 (화) 18:57
잔글
1번째 줄: 1번째 줄:  
이 문서는 이론이 아닌, 오로지 장고를 이해하기 위한 실전을 위해 쓰이는 문서이다.
 
이 문서는 이론이 아닌, 오로지 장고를 이해하기 위한 실전을 위해 쓰이는 문서이다.
 +
 +
== 설치 ==
 +
장고를 설치하기 전에 가상환경을 만들고, 그 안에 설치하도록 하자.
 +
 +
그 안에서 pip install django 를 입력하면 설치를 진행한다.
    
== 프로젝트 만들기 ==
 
== 프로젝트 만들기 ==
6번째 줄: 11번째 줄:  
!방법
 
!방법
 
!비고
 
!비고
 +
|-
 +
|프로젝트 디렉터리 만들기
 +
|
 +
|프로젝트를 담을 디렉터리를 만든다.
 +
|-
 +
|장고 설치
 +
|pip install django
 +
|
 
|-
 
|-
 
|프로젝트 생성
 
|프로젝트 생성
30번째 줄: 43번째 줄:  
|생성
 
|생성
 
|django-admin startapp testapp
 
|django-admin startapp testapp
|프로젝트 디렉터리 안에서 실행.
+
|프로젝트 디렉터리 안에서 실행. testapp이라는 앱을 만든다.
 
그냥 단순히 앱 이름의 디렉터리를 만드는 것 뿐. 기존의 앱을 옮겨온다면 그냥 붙여넣기를 하면 된다.
 
그냥 단순히 앱 이름의 디렉터리를 만드는 것 뿐. 기존의 앱을 옮겨온다면 그냥 붙여넣기를 하면 된다.
 
|-
 
|-
|설정클래스 등록
+
|Settings.py에등록
 
|Settings.py에 앱 등록config/settings.py 안에...
 
|Settings.py에 앱 등록config/settings.py 안에...
 
INSTALLSED_APPS 항목에 추가한다.
 
INSTALLSED_APPS 항목에 추가한다.
 
|INSTALLSED_APPS 항목 안에 앱이름만 추가해준다.
 
|INSTALLSED_APPS 항목 안에 앱이름만 추가해준다.
ex) INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles',
+
ex) <syntaxhighlight lang="python">
 +
INSTALLED_APPS = [ 'django.contrib.admin',
 +
                'django.contrib.auth',
 +
                'django.contrib.contenttypes',
 +
                'django.contrib.sessions',
 +
                'django.contrib.messages',
 +
                'django.contrib.staticfiles',
 +
                'testapp', ]  # 요거 새로 추가.
 +
</syntaxhighlight>
   −
'testapp', ]
     −
 
+
혹은 앱의 config를 직접 등록한다.(이게 정석) 앱디렉터리의 apps.py 안의 Config를 직접 등록. <code>test.apps.TestappConfig</code>형식으로.
혹은 앱의 config를 직접 등록한다. (이게 정석)앱디렉터리의 apps.py 안의 Config를 직접 등록. <code>test.apps.TestappConfig</code>형식으로.
   
|}
 
|}
   54번째 줄: 73번째 줄:  
|config 안의 urls.py를 수정한다.
 
|config 안의 urls.py를 수정한다.
 
이건 <code>test/</code>로 들어온 요청을 testapp 안의 urls.py로 돌린다는 의미.
 
이건 <code>test/</code>로 들어온 요청을 testapp 안의 urls.py로 돌린다는 의미.
 +
 +
 +
가장 상위의 urls.py에서 뷰를 불러와 사용할 수도 있지만, 해당 앱 내부에서 처리할 수 있게끔 앱으로 처리를 돌려주는 게 일반적이다.
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
 
from django.contrib import admin  # 관리기능
 
from django.contrib import admin  # 관리기능
64번째 줄: 86번째 줄:  
</syntaxhighlight>
 
</syntaxhighlight>
 
|-
 
|-
|처리할 뷰 지정하기
+
|앱 안의 urls.py 만들기
 +
처리할 뷰 지정하기
 
|testapp 안에 urls.py를 만들고 작성한다.
 
|testapp 안에 urls.py를 만들고 작성한다.
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
89번째 줄: 112번째 줄:  
def hello(request):
 
def hello(request):
 
     hello = "hello"
 
     hello = "hello"
     context = {"hello": hello}
+
     context = {"hello": hello} # 탬플릿에서 처리할 자료 지정.
 
     print("hello~")
 
     print("hello~")
 
     return render(request, 'test.html', context)
 
     return render(request, 'test.html', context)
128번째 줄: 151번째 줄:  
     {
 
     {
 
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
 
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
         'DIRS': [BASE_DIR / 'templates'],
+
         'DIRS': [BASE_DIR / 'templates'], # 탬플릿을 찾을 공간을 지정한다.
 
         'APP_DIRS': True,
 
         'APP_DIRS': True,
 
         'OPTIONS': {
 
         'OPTIONS': {
134번째 줄: 157번째 줄:  
</syntaxhighlight>앱 내부의 경로를 읽지 못하는 경우엔 Settings.py 안의 DIR(공용 탬플릿 디렉터리)를 주석처리 한 후 다시 실행하면 앱 내부의 templates 디렉터리를 읽는다.
 
</syntaxhighlight>앱 내부의 경로를 읽지 못하는 경우엔 Settings.py 안의 DIR(공용 탬플릿 디렉터리)를 주석처리 한 후 다시 실행하면 앱 내부의 templates 디렉터리를 읽는다.
 
|}
 
|}
 +
 +
== 확인 ==
 +
 +
* 서버를 실행하고 해당 링크로 접속해보면 <nowiki>{{hello}}</nowiki> 변수 안에 담긴 데이터를 볼 수 있다.(개발자도구로 보면 탬플릿의 내용이 그대로 나온다는 것을 알 수 있다.)
 +
* 터미널에서 보면 print(hello) 때문에 터미널에도 메시지가 나옴을 확인할 수 있다.
 +
 
[[분류:1. 장고 기초]]
 
[[분류:1. 장고 기초]]