본문 바로가기

Django 게시판 만들기 (1) - 개발환경 구축(가상환경, 장고 설치) 본문

Programming/django

Django 게시판 만들기 (1) - 개발환경 구축(가상환경, 장고 설치)

ksoes 2022. 3. 31. 12:08

 

 

 

해본 작업인데 이걸 계속 까먹어서 헤맨다; 복습하기 위해서 기록으로 남겨놓으려고 한다..

 

  • 윈도우에 파이썬 설치
  • 가상환경 생성
    • c:\myvenvs : 가상환경을 모아놓을 폴더 생성 후
    • mkdir venvs ,cd venvs : venvs폴더 생성하고 이동
    • python -m venv mysite : venvs에 mysite라는 이름의 가상환경을 만드는 명령어 입력
    • c:\myvenvs\venvs\mysite\Scripts activate : 가상환경 실행
    • pip install django==3.1.3 : 장고 설치
    • python -m pip install --upgrade pip : pip 최신버전으로 업그레이드
    • c:\myvenvs\venvs\mysite\Scripts deactivate : 가상환경 실행종료

 

  • 프로젝트 디렉터리 생성
    • cd \, mkdir myprojects : 프로젝트들을 모아놓을 루트 디렉터리 생성 후 
    • cd myprojects, c:\myvenvs\venvs\mysite\Scripts\activate : 루트 디렉터리에서 mysite 가상환경 진입
    • mkdir mysite, cd mysite : 이번 게시판 프로젝트를 의미하는 mysite디렉터리 생성 후 이동
    • django-admin startproject config . : 장고 프로젝트 생성 (현재 디렉터리인 mysite를 기준으로 프로젝트를 생성하겠다는 의미)
    • python manage.py runserver : 로컬 서버 

 

  • 가상환경 진입을 위한 배치파일 생성
    • c\myvenvs\venvs 에서 mysite.cmd 파일 생성
    • echo off 
    • cd c:/myprojects/projects/mysite
    • c:/myvenvs/venvs/mysite/scripts/activate
    • 환경변수 - 사용자변수 PATH 편집 - 새로 추가 - C:\myvenvs\venvs
    • set path 명령으로 path에 추가가 되었는지 확인
    • 배치파일 이름으로(mysite) 가상환경에 진입이 잘 되는지 확인
    • 파이참 실행 및 인터프리터 설정

 

  • 파이참 실행 및 인터프리터 설정
    • C:\myprojects\projects\mysite 프로젝트 열기
    • settings - Project: mysite - Python Interpreter - 톱니바퀴 - add - existing environment - C:/myvenvs/venvs/mysite/Scripts/python.exe 선택

 

  • config/settings.py 설정값 수정
    • LANGUAGE_CODE = 'ko-kr'
    • TIME_ZONE = 'Asia/Seoul' 로 수정

 

 

  • 템플릿에서 <a href='{% url %}'> 템플릿 태그로 url 연결부분, (ex <a href="{% url 'pybo:question_create' %}" )
    • <a href="{% url '(앱)네임스페이스:name' 필요한인자 %}">
      • 필요한인자 는 url매핑에 정의된 ex)<int:question_id>에 전달해야 되는 값이다. ( 하단 접은글의 path의 route('app/<int:id>') )
      • namespace와 url별칭 모두 urls.py 에서 작성한다.
        • 더보기
          namespace : ex) app_name = '앱이름'
          url별칭 : ex) path('app/<int:id>(=라우트)',views.index, name = '이름') <- name부분
          라우트 : url패턴을 가진 문자열
      • namespace : url의 name을 사용하다 보면 name이 중복될 수도 있어, 중복방지를 위해 '네임스페이스:url별칭' 식으로 작성한다
      • 템플릿 : html파일과 비슷하지만 장고 태그를 사용할 수 있는 html파일. templates디렉터리에 저장하며 디렉터리를 생성할 때 config/settings.py TEMPLATES의 'DIRS'항목에 추가해야 한다. 만약 앱 templates디렉터리를 등록했을 경우, 장고는 하위의 templates디렉터리들도 자동으로 템플릿 디렉터리로 인식한다.
      • 템플릿 태그 : 템플릿에서 객체출력할 때 사용 ex) {{ question }} or {{ question.id }}, {{ question.subject }}
    • url패턴 실무 예제 : https://simpleisbetterthancomplex.com/references/2016/10/10/url-patterns.html 
    • 추가 참고 : https://wikidocs.net/9649

 

  • 만약 http://localhost:8000/board/answer/create/1 혹은 http://localhost:8000/board/answer/create/2 와 같은 페이지 요청이 들어오면,
    views.py에 작성된 url패턴들 중 일치하는 것을 찾아 path('answer/create/<int:question_id>', views.answer_create, name='answer_create'),의 views.answer_create 함수가 호출된다.

 

  • 템플릿 변수 : {{ variable }}
  • 템플릿 필터 : {{ variable | length }}
  • 템플릿 태크 : {% %}
    • {% url %} : 템플릿에 url 하드코딩 하는 것을 방지하기 위함
    • {% load %} : 필터 및 사용자 정의태그를 로딩해줌
    • 템플릿 상속 :
      • 상속하는 부모 템플릿에서는 {% block content %} {% endblock %} 태그 사용
      • 상속받는 자식 템플릿에서는 {% extends %} 태그를 상단에 표시!!

 

 

Comments