□ Django는 HTML/CSS 로 구성된 Templates 부분에 파이썬 언어를 바탕으로 코드를 짤수 있는 템플릿 언어가 있음. 자세한 내용은 아래 링크 참고.
https://docs.djangoproject.com/en/5.0/ref/templates/language/
□ my_app 이라는 하위 앱을 생성 후 views, urls, template 파일을 생성함
● my_app > views.py
○ my_var라는 딕셔너리 생성
○ render 함수 : render 함수는 HTTP 요청에 대한 응답으로 HTML 페이지를 반환하는 데 사용. 주로 템플릿을 렌더링하고, 이를 HTTP 응답 객체로 감싸서 클라이언트에게 전송하는 역할 함. render 함수는 Django의 뷰 함수 내에서 주로 사용되며, 간편하게 템플릿 렌더링을 처리할 수 있게 해줌.
from django.shortcuts import render
# Create your views here.
def exmaple_view(request):
return render(request, "my_app/example.html") #myapp>templates>myapp>exmaple.html
def variable_view(request):
my_var = {"first_name":"dongwhee",
"last_name":"KIM",
"age":"30",
"some_list":[1,2,3,4,5],
"some_dict":{"inside_key":"inside_value", "outside_key":"outside_value"},
"user_logged" : True
}
return render(request, "my_app/variable.html")
● my_app > urls.py
○ " " : https://***.**.**.*/my_app 요청시 example_view에서 render함수로 지정한 example.html 반환
○ "variable/" : https://***.**.**.*/my_app/variable 요청시 variable_view에서 render 함수로 지정한 variable.html 반환
from django.urls import path
from . import views
#reguster the appnamespace
# URL names
app_name = "my_app"
urlpatterns = [
#domain/my_app/
path("", views.exmaple_view, name="example"),
path("variable/", views.variable_view, name="variable")
]
● project > urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
#app
path("my_app/", include("my_app.urls"))
]
● Template
○ 필터
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{% comment %} {% comment %} <h1>variable.HTML</h1> {% endcomment %}
<!--장고 필터 사용-->
<h2>{{first_name | upper}}</h2>
<h2>{{last_name | lower | capfirst}}</h2>
<h2>{{some_list}}</h2>
{% comment %} <!--장고 필터 사용-->
<h2>{{some_list | length}}</h2>
</body>
</html>
○ 반복문
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p><h1>반복문1</h1></p>
<ul>
{%for a in some_list %}
<li>{{a}}</li>
{% endfor %}
</ul>
<p><h1>반복문2</h1></p>
{% for k,v in some_dict.items %}
<h5>키 : {{k}}</h5>
<h5>벨류 : {{v}}</h5>
{% endfor %}
</body>
</html>
○ 조건문
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>조건문1 IF</p>
{% if user_logged %}
출력
{% endif %}
<p>조건문2 IF</p>
{% if user_logged %}
<h1> welcome {{first_name}} </h1>
{% endif %}
</body>
</html>
'Python > Django Ⅲ' 카테고리의 다른 글
(Review) Django CBV (0) | 2024.05.27 |
---|---|
(Review) Django Form (0) | 2024.05.27 |
(Review) Model 생성 및 Create, Read (0) | 2024.05.27 |
(Review) Django 기본 / 동적 뷰 (0) | 2024.05.24 |
(Review) Django 프레임워크 개요와 웹페이지 띄우기 기본예제 (0) | 2024.05.24 |