< 요약 > 


       글쓰기 폼을 만들고 , view로 작성한 글들을 처리해서 , template에 보여주자. 

 

  1. 프로젝트 준비하기 ( 폴더 만들기,가상환경 설치)
  2. 프로젝트 시작하기 ( project 시작하기, App만들기)
  3. template만들기  
  4. view 만들기
  5. url 만들어서 연결하기
  6. model 만들고 admin에 model 등록하기 
  7. admin계정만들어서 model 글작성하기
  8. view로 model 데이터 가져오기
  9. 가져온 데이터를 template에서 보여주기

 

< 배운것 > 

  1. model에 데이터를 view로가져와 처리해서 template에 보여주기
  2. 템플릿 언어

 

1. 프로젝트 준비하고 

 

폴더 만들어서 vsCode에 들어간다. 터미널킨다. 

 

1. 가상환경을 만들고 실행해준다 ( 가상환경 이름은 myvenv로 지었다.)

 

virtualenv myvenv 
source myvenv/bin/activate 		 

 

 

2. 장고설치 

 

pip install django		

 

2. 프로젝트 시작하기 

 

1. 프로젝트 시작하기 (프로젝트 명은 blogproject)

 

 

django-admin startproject blogproject

 

 

 

2. 만들어진 프로젝트에 경로 들어가기 (manage.py 가 있는곳에서만  App을 만들 수 있다.)

 

 

cd blogproject 

 

 

 


3. App 만들어주기 (App 이름은 blog)

 

 

python manage.py startapp blog

 

4. 만든 App을 프로젝트에 연결시키기 

- blogproject안에 setting.py에서  INSTALLED_APPS 안에 추가하기

 

 

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

#App 이름 넣고 ' , ' 넣으면 됨 

 

3. templates 만들기

 

1. App(blog)폴더안에 templates이름으로 폴더를 만든다. 
2. templates 폴더안에 'home.html'를만들고  밑에 내용을 넣는다. 

 

<h1> 블로그페이지 입니다. </h1>

 

4. view 만들기 

 

데이터를 처리하는 역할인 view을 건드리자. 

bApp(blog)안의 views.py파일을 열어 요청이 들어오면 home.html파일을 여는 함수를 만들자. 

 

 

5. URL 만들어서 연결하기 

 

view를 만들었으니 URL을 만들어줘서  화면에 띄어보자. 

 

1. 프로젝트 폴더에서 urls.py 찾아 작성한다. 

 

2. 화면을 띄어서 제대로 작성했는지 확인해본다. 

 

다 저장하고 터미널에서  입력하자.

 

python manage.py runserver

그러면 .. 

app 이 잘 연결되서 실행된 모습

 

6.  블로그에 사용할 글쓰기 model 만들고 admin에 등록하기.

 

 

블로그를 만들기 위해 글쓰기기능을구현한다. 

1. models.py 에서 글쓰기 폼을 만들기
2. admin.py 에서 만든 폼 admin페이지에 등록하기
3. migration


를 하면된다.. 
 

1. models.py 에서 글쓰기 폼을 만들기

 

글쓰기 기능은 model에서 글쓰기 폼을 만들어 구현할 수 있다. 

  • 제목
  • 본문
  • 작성일자

    로 구성된 폼을  App(blog) 폴더에 있는  models.py 에서 작성하자.

 

 

2. admin.py 에서 만든 폼 admin페이지에 등록하기

우리가 만든 글쓰기 model을 admin 페이지에 나오게 하려면 admin.py에서 등록을 해줘야한다. 

from django.contrib import admin
from .models import Blog
# Register your models here.


admin.site.register(Blog)

 

 

3.migration

 

Djaango는 python으로 작동하는 프레임워크지만 DB는 그렇지 않다. 그래서 python 코드를 DB에서 알아 듣게끔 하는 작업을 해줘야 한다.  이 작업은 2개의 명령어를 순서대로 입력해 주면 된다. 

python manage.py makemigrations
python manage.py migrate


python manage.py makemigrations : DB가 파이썬 코드를 알아듣게 해줘 (모델이 뭐 바뀐게 없나 찾는 행위)
python manage.py migrate : 바뀐 것을 적용해줘

 

 

 

7. admin계정만들어서 model 글작성하기

 

 

admin 페이지에 접속하려면 admin 계정을 만들어 줘야 한다.



admin 계정을 만드는 명령어는 

 

 

python manage.py createsuperuser

 

 

이제  127.0.0.1/admin으로 접속해 방금 만든 계정으로 로그인 해보면.

위 사진 처럼 우리가 만든 Blog라는 글쓰기 폼이 나오는것을 볼 수 있다. 
add를 누르고 글을 만들어 보자.

 

 

8. view로 model 데이터 가져오기

 

model(글쓰기 폼)도 만들었고, admin페이지에서 model(글쓰기 폼)를 이용해 글을 만들었다면 
데이터를 보여줘야 한다. 보여주는 부분은 templates. 마지막 9번에서 설명한다.

 

 

view.py에서 수정 해주자. 

 

 

 

 

추가된 부분만 살펴보자면 views.py파일에 models.py에서 적었던 Blog를 import해주어야 한다. 그 다음 Blog.objects 라는 녀석을 blogs 라는 변수에다가 넣어 준다.. Blog.objects는 아까 admin페이지에서 확인했던 blog 안의 데이터들을 말한다.

render에서는 {'blogs': blogs} 를 추가했는데, blogs라는 변수를 template에서 쓸때 blogs라는 이름으로 가져오겠다고 명명하는 작업이다.

 

9. 가져온 데이터를 template에서 보여주기


우리가 만든 글쓰기 폼은  model에서 양식을 만들고,  admin 페이지에서 만든 양식으로 글을 쓰는것 까지 만들었다.
이제 글쓰기 폼으로 만든 글을 보여주기 위해서는 view를 거쳐서 데이터를 처리해서 templates로 보내야 한다. 


우리가 만든 templates인 home.html에서 우리가 작성한 글을 보여주기 위해서 '장고 템플릿 언어'를 쓴다. 

템플릿 언어를 써서 보여주자.


'장고 템플릿 언어'란? 장고로 개발할 시 html 템플릿에서 사용할 수 있는 특별한 규칙 또는 문법이다.

 

말 그대로 HTML 문서 상에서 코멘트가 필요할 때 사용한다.

  • 이는 주석과 비슷한 역할을 하고, 이는 장고로 개발할 시 웹 브라우저에 의해 해석되어 출력되지 않습니다.
  • 장고에서는 두 가지의 코멘트 형식을 제공합니다.
    1. {# #}
    2. {% comment %}
        {% endcomment %}

직접 만들어 보자. view.py에서 'blogs'라는 변수로 model의 데이터를 받이왔다면 
보여주는 home.html에서 템플릿 언어를 사용에 이 변수를 출력해보자.

 

home.html에서 다음과 같이 작성해주자.

 

 

이제 저장하고 서버를 실행 해보자. 

 

 

python manage.py runserver

 

 

 

이렇게 나오면 성공!

+ Recent posts