룰루랄라 코딩기록장
[Django]Weekely2_Wordcount 본문
Wordcount
사전지식
템플릿 언어
- HTML안에 쓰는 장고 제공 언어.
- HTML안에 파이썬 변수/문법을 쓰고 싶을 때 사용하게 된다.
템플릿 변수 : {{python_variable}}, 해당 파이썬 변수를 HTML파일에 담아서 화면에 출력한다.
템플릿 필터 : {{python_variable | filter}}템플릿 변수에 추가적인 속성 및 기능 제공
- {{value | length}} : value의 길이 반환
- {{value | lower}} : value를 소문자로 출력
템플릿 태그 : html상에서 파이썬 문법 사용, url생성 등의 기능 제공
- {% tag %} ...내용 ... {% endtag %} -> HTML태그처럼 끝나는 태그가 있어야 한다.
Wordcount 만들어보기
우선 VSCode를 실행 한 후 가상환경 생성, Django설치, 프로젝트 생성 등 기본적인 환경을 셋팅한다.
가상환경 설치 및 실행
python -venv <가상환경이름> source <가상환경이름>/Scripts/Activate
Django 설치
pip install django
프로젝트 생성 및 APP생성
django-admin startproject <프로젝트이름> python manage.py startapp <app이름>
프로젝트의 setting.py에 wordcount class추가 및 템플릿 폴더 생성, views.py 함수 생성, url.py 설정을한다.
navbar를 모든 페이지에 똑같이 보여주기 위해 템플릿 확장을 사용하여 중복되는 코드를 하나의 페이지로 구성한다.
project폴더 안에 templats폴더를 생성하여 base.html을 생성한다.
- base.html의 첫 줄에 {% load static %} 입력.
- bady tag속에 {% block contents %} 과 {% endblock %} 을 입력해준다.
- 이제 base.html에 입력시킨 코드들은 해당 파일을 불러온 다른 html파일들에게서 똑같이 적용된다.
setting.py에서 TEMPLATES의 DIRS부분에 base.html을 저장시킨 경로를 입력한다.
맨 밑에 다음과 같은 코드를 추가한다.
STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), )
문장을 입력받기 위한 home.html을 먼저 작성한다. 맨 처음 {% extends 'base.html' %} 를 입력하여 base.html파일을 불러온 후 base의 body안에 포함시킬 내용을 {% block contentes %} 와 {% endblock %} 으로 묶어준다..
다음 a tag를 사용하여 about을 클릭하였을 때 about.html로 이동하게 하기 위해 템플릿 태그를 사용하여 작성했다.
<a href="{% url 'about' %}">About</a>
- url.py에서 path설정할 시 about.html은 about라는 이름으로 어디서든 사용할 수 있게 해주었기 때문에 'about'만 작성하면 된다.
- url.py에서 path설정할 시 about.html은 about라는 이름으로 어디서든 사용할 수 있게 해주었기 때문에 'about'만 작성하면 된다.
about.html에는 우리가 작성한 페이지가 어떤 페이지인지 간단하게 작성한 후 home으로 돌아가는 버튼도 만들어준다.
다음은 우리가 입력한 문장과 단어, 단어가 나온 횟수를 보여주는 count 페이지를 작성해야한다.
home.html에서 submit버튼을 눌러서 count로 넘어가기 위해 '{% url 'count' %}를 form tag의 action에 작성한다.
<form action=""> //아래와 같이 수정해준다 <form action= {% url 'count' %}>
이제 버튼을 누르면 count로 입력한 데이터가 전송이 되는데 데이터를 어떻게 받아서 가공하여 count로 넘겨줄지 정의하기 위해 view.py의 count함수를 수정한다.
'LikeLion > Djaongo' 카테고리의 다른 글
[Django]Weekely2_Wordcount1_2 (0) | 2019.04.16 |
---|---|
[Django]Weekly1.5 MTV (0) | 2019.04.04 |
[Django]Weekly1-3 Hello World 실습 (0) | 2019.04.04 |
[Django]Weekly1-2 Hello World 이론 (0) | 2019.04.02 |
[Django]Weekly1-1 기본환경 셋팅 (0) | 2019.04.02 |