검색결과 리스트
분류 전체보기에 해당되는 글 187건
- 2019.01.02 Django를 이용한 프로그래밍 #5
- 2019.01.02 Django를 이용한 프로그래밍 #4
- 2019.01.02 Django를 이용한 프로그래밍 #3
글
Django를 이용한 프로그래밍 #5
Python Django
2019. 1. 2. 11:35
반응형
Templates(HTML)에서 사용되는 문법 편
- 제어를 위한 문법
- {% %} 의 기호를 사용
- 기본 문법은 Python을 따름
- 반복문
- {% for data in datalist %}
- {{data}}
- {% endfor %}
- 비교문
- {% if %}
- {% elif %}
- {% else %}
- {% endif %}
- 값 저장
- {% with var = data %}
- {{ var }} is storaged value
- {% endwith %}
- URL 하드 코딩을 방지
- {% url %}
- 예) {% url 'namespace: view-name' arg1 arg2 %}
- namespace는 urls.py에서 설정한 이름
- view-name은 urls.py에서 설정한 URL패턴 이름
- CSRF 공격 방지
- {% csrf_token %}
- form x태그 윗줄에 삽입
- 사용자 정의 태그 및 필터 로딩
- {% load %}
- 예) {% load lib package.plib %}
- 변수를 위한 문법
- {{ }} 기호를 사용
- 사용기호 주의 : AngularJS의 문법과 비슷함
- {{ 변수명 }} 으로 사용되며, Django에서 내부의 내용을 출력
- 생성된 변수의 초기값은 빈 문자열 값
- 변수명에 . (dot)을 사용하면 다음 순서로 확인 과정을 거침
- 사전(Dic) 타입인지 확인
- 해당 속성인지 확인
- 리스트 타입인지 확인
- 필터
- 소문자로 변경 {{ str | lower }}
- 특수 문자 이스케이프 {{ str | escape }}
- 특정 갯수 문자 리턴 {{ str | truncatewords: 5}} 앞에서 5개 문자를 리턴 (개행문자 제거됨)
- 리스트 내용 합치기 {{ listdata | join : " - "}} listdata의 내용을 - 으로 연결 시켜 리턴
- 변수 값 확인 {{ variable | default : "None"}}
- 변수 길이 리턴 {{ variable | length }}
- HTML 태그 제거 {{ str | striptags }}
- 변수값이 1이 아니면 접미사 붙임 {{ variable | pluralize : "s" }} // 값에 따라 작업이 필요할경우 사용
- 합 연산 {{ variable | add:"2" }} // 문자열의 경우 문자열 조합, 리스트는 리스트를 합침, 숫자는 더함
- 기타
글
Django를 이용한 프로그래밍 #4
Python Django
2019. 1. 2. 11:35
반응형
- Django의 templates(html)와 views.py를 이용하여 화면 생성
- 위와 같은 화면을 표시하기 위한 프로그램 작성 방법 설명
- 사전 설정
- 화면에 표현하기 위한 적당한 이미지 파일 생성
- 생성된 이미지를 Django가 설치된 서버로 전송
- 개발환경에서 Static 파일(이미지, CSS 등 정적 파일 모두)을 화면에 표시하기 위해서는
- 반드시 settings.py 파일 내에서 DEBUG = True 로 설정되어야 함
- Django는 Development와 Production에 대한 설정 부분이 다소 혼동을 주므로 반드시 확인할 것
- ※※※※※※※※※※※※※※※※※※※※ 추후 settings.py에 대한 설명을 별도 페이지에서 작성 예정 ※※※※※※※※※※※※※※※※※※※※
- views.py와 Templates의 연결관계
- Django는 Templates라는 것으로 화면을 구성할 수 있음
- 이러한 Templates에는 화면, Html파일을 정의하며, 이 부분은 대부분 staticfiles와는 별개로 사용된다
- views.py 수정
- main 디렉토리에 있는 views.py 파일을 다음과 같이 수정
- from django.template import loader # template를 읽어들이기 위해 사용
- template = loader.get_template('mainindex.html') # mainindex.html파일을 loader로 읽어 template 객체에 저장
- context = { 'username' : 'gunamis', } # username에 값을 넣어서 context를 생성
- return HttpResponse(template.render(context, request)) # context를 template객체에 전달하여 최종 html을 생성하여 Http로 Response를 함
- mainindex.html 작성
- templates 폴더를 확인 ( 없으면 생성 )
- mainindex.html파일을 생성하여 아래와 같이 작성
- {% load static %} # static을 로드 이미지 등 static 파일을 사용하기 위해 필요
- {% static "main.jpg"%} # static에 명시된 디렉토리명으로 치환 됨, /static/main.jpg
- HTML소스를 보면 다음과 같이 치환됨
- {% if username %} # views.py에서 전달된 context 중 username이 있다면
- {{ username }} # username의 값으로 치환
- {% endif %} # if문 종료
- 이미지 static 파일 위치
- 개발 모드에서 Django는 static 파일의 위치가 다소 특이 함
- 별도로 지정할 수 있을듯 하나, 본 문서에서는 기본 위치로 사용 함
- ./py36-venv/lib/python3.6/site-packages/django/contrib/admin/static/ 위치에 파일 저장 됨 (각 개인의 환경에 따라 상이 할 수 있음)
- 위 위치한 곳으로 main.jpg 파일을 업로드
- urls.py 파일 수정
- root의 urls.py 파일 수정
- from django.conf import settings # conf의 settings 파일을 사용하기 위해 선언
- from django.conf.urls.static import static # static 사용을 위해 선언
- ]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # static 파일 사용을 위해 선언
- settings.py 파일을 보면 다음과 같이 선언되어 있음
- 이 위치가 ./py36-venv/lib/python3.6/site-packages/django/contrib/admin/static/의 위치 임
- DEBUG = True로 반드시 변경
- """ ... """는 python에서 여러줄 주석 처리 하는 방법 임
- 실행
- 브라우저를 실행하여 확인
글
Django를 이용한 프로그래밍 #3
Python Django
2019. 1. 2. 11:34
반응형
- 기본 URL로 접근시 접속 페이지 만들기 (main)
- http://192.168.85.4:8080 으로 접속 시 다음과 같은 404 not found가 발생 함
- urls.py에 기본접속에 대한 부분이 없어 나타나는 현상
- myweb 하위에 main 디렉토리 생성
- 아무 내용이 없는 상태 임
- 여기에 views.py 와 urls.py를 생성 함
- views.py
- urls.py
- 상위 myweb 디렉토리 내의 urls.py를 수정
- path('',include('myweb.main.urls')), 를 추가
- 접속
- 성공
- -
- HTTP Exception 처리
- URL을 처리 하는 도중발생한 에러에 대하여 처리하는 방법
- 40x, 50x, 등의 오류 (ex: 404 - page not found 등)
- 기본적으로 오류 발생시 나타나는 화면
- 404 에러시
- 처리 방법
- settings.py를 오픈
- 위 DEBUG = TRUE를 DEBUG = FALSE로 수정 # 오류에 대한 정보를 표시함, 따라서 실제 운영 Deploy에서는 반드시 False로 설정 필요
- TEMPLATES = [ 를 찾아 해당 부분에 templates 위치를 삽입
- templates를 저 위치에서 찾아 적용한다는 의미 임
- 저장 후 닫기
- 웹 서비스 상단으로 들어가서
- templates 폴더를 생성
- 404.html을 만들고 적당한 문구를 삽입하고 확인
- 없는 링크를 호출 하여 결과 확인
- 마찬가지로 500.html등을 생성 하면 됨.
- 단, 500에러의 경우 Exception 처리 등을 위해서 별도 소스 작업을 할수 도 있음