Django 게시판 만들기 (1) - 개발환경 구축(가상환경, 장고 설치) 본문
해본 작업인데 이걸 계속 까먹어서 헤맨다; 복습하기 위해서 기록으로 남겨놓으려고 한다..
- 윈도우에 파이썬 설치
- 가상환경 생성
- 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
- <a href="{% url '(앱)네임스페이스:name' 필요한인자 %}">
- 만약 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 %} 태그를 상단에 표시!!
'Programming > django' 카테고리의 다른 글
Django 게시판 만들기 (5) - 회원가입 구현 (0) | 2022.04.05 |
---|---|
Django 게시판 만들기 (4) - 글 수정/삭제 하기, 로그인 구현 (0) | 2022.04.03 |
Django 게시판 만들기 (3) - bootstrap 적용 (0) | 2022.04.01 |
Django 게시판 만들기 (2) - django mysql 연동 (0) | 2022.03.31 |
Comments