Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- css여백설정
- 스타일상속
- padding
- CSS Diner
- 속성선택자
- css단위
- css테두리
- CSS선택자
- !important
- 선택자우선순위
- 선택자게임
- css기본선택자
- 강제상속
- css상속속성
- css
- CSS border
- 가상요소선택자
- css여백
- css설정
- css복합선택자
- 가상클래스선택자
- margin
- style상속
- html의구조 #태그 #빈태그
- css너비설정
Archives
- Today
- Total
잊기
[python, django] django(장고) application 개발(2) View, Template 본문
HTML 작성시 DJANGO 문법
- html + 파이썬코드 (템플릿 태그)
{% 파이썬코드 %} - Template변수 (템플릿 변수)
{{ 변수 }} - filter
{{ 변수명 : filter }} - 주석
{# 주석 }
UI를 위한 templatates 폴더 생성 후 안에 polls 폴더 생성 ( templates > polls )
=> html파일명이 겹쳐도 앞에 폴더명으로 구분하기 위해서 내부폴더 추가 생성
ex) polls.index.html / dolls.index.html (namespace)
View 와 Template
url mapping - URL : view = n : 1 이 가능하며, URLconf 라고 함 ( urls.py )
URLconf - view - template / URLconf - template - view 순서로 코딩
- URLconf ( urls.py )
urlpatterns = [
path('admin/', admin.site.urls),
path('polls/', include('polls.urls'))
]
# path, admin모듈 : 장고제공, views모듈 : URL스트링 매칭시 호출되는 뷰함수
# 일정한 형식이므로 그대로 코딩, 위에서 아래로 진행하기에 순서는 주의
# path() 에서 URL 작성시 '/'를 뒤에만 붙이는것을 권장
app_name = 'polls'
urlpatterns = [
path('', views.index,name='index'),
# /polls/ 매칭시, views.index(request) 함수 호출
path('<int:question_id>/', views.detail, name='detail'),
# /polls/[i] 매칭시, views(request) 함수 호출
# <> 부분이 정수(int)이면 매치, 매치된 문자열을 question_id에 할당
]
# app_name을 부여 재사용, 수정이 용이하게 사용 (권장)
# app_name 변수가 같아도 클래스가 다르므로 class1:polls , class2:polls로 구분됨 (namespace)
# name : URL패턴별로 이름 부여, 탬플릿 파일에서 사용
- path 객체 작성
- path ( 'polls/', views/index(request) )
- path ( 'questions/, <int : question_id>/', views.question_id )
-> views.py 에서 변수 question_id 를 생성, 넘겨줘야 사용 가능 - url patterns -
path('polls/', include('polls.urls')) => URL이 polls 라면 polls 폴더의 urls.py 파일 참고
url 'polls:vote' question_id => polls와 vote 사이에 question_id 를 넣어 반환 ( /polls/question_id/vote/ ) - include() 함수 : 다른 앱의 URLconf를 연결하는(참조시키는) 역할
- View 함수 작성 ( templates / 폴더명 / '파일명.html' 생성 )
- HTML 문서에서 파이썬 언어를 사용할 때, {% %} 를 사용
- {% for ~ in ~ %} {% endfor %}
- {% if ~ %} {% endif %} - html 파일을 작성하면서 필요한 변수 확인 => view.py에서 생성 , 넘겨받아야 함
- view 함수
- 템플릿에게 넘겨줄 객체를 생성, 정의
- html 템플릿 파일의 충돌을 방지하기 위해 templates > app이름(폴더) 으로 생성하여 사용
- 사용자에게 보여줄 최종 html 텍스트를 담아 HttpResponse객체를 반환
- form 태그 : 서버의 데이터를 변경하는 경우 POST방식을 사용, form action 속성에 url 태그를 사용하여 지정
form 태그 사용시 장고가 제공하는 {% csrf_token %} 태그를 넣어줌 ( 피싱공격 방지 태그)
- question.choice_set.all( ) : Question 객체의 choice_set (PK = FK)로 연결된 모든 항목
question.choice_set.all( )[ : n ] - 갯수등 추가 제한식 사용 가능 - forloop.counter 변수 : for문이 실행된 횟수를 담고있는 변수
- get_object_or_404( ) : Question 객체의 pk로 연결된 모든 항목조회, 객체가 없으면 404 익셉션 발생
'Python _ Django' 카테고리의 다른 글
[python, django] django(장고) shell(셸)을 이용한 데이터 조작 (0) | 2023.02.23 |
---|---|
[python, django] django(장고) project 생성, application 개발(1) (0) | 2023.02.22 |
[python, django] django (장고) 환경 설정, 가상 환경 설정 (0) | 2023.02.22 |