룰루랄라 코딩기록장

[Django]Weekely2_Wordcount 본문

LikeLion/Djaongo

[Django]Weekely2_Wordcount

Jeonnnng 2019. 4. 16. 15:09

Wordcount

사전지식

  • 템플릿 언어

    1. HTML안에 쓰는 장고 제공 언어.
    2. HTML안에 파이썬 변수/문법을 쓰고 싶을 때 사용하게 된다.
  • 템플릿 변수 : {{python_variable}}, 해당 파이썬 변수를 HTML파일에 담아서 화면에 출력한다.

  • 템플릿 필터 : {{python_variable | filter}}템플릿 변수에 추가적인 속성 및 기능 제공

    1. {{value | length}} : value의 길이 반환
    2. {{value | lower}} : value를 소문자로 출력
  • 템플릿 태그 : html상에서 파이썬 문법 사용, url생성 등의 기능 제공

    1. {% 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에서 TEMPLATESDIRS부분에 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'만 작성하면 된다.
  • 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
Comments