2022.11.17 - [Web hacking/웹 정리 & 심화] - Django 설치 및 실습 - 1
(2) 페이지 만들기
프로젝트 이름(testproject)으로 만들어진 폴더 내 urls.py에 아래의 내용을 추가한다.
해당 폴더 밑에 생성한 애플리케이션(ssti)의 내용을 찾을 수 있도록 한다. 또한 앱 내 url 파일에서 입력해도 경로를 찾을 수 있도록 include를 통해 포함시킨다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path("admin/", admin.site.urls),
path('ssti/', include('ssti.urls')),
]
앱 경로에 url 파일을 새로 생성해 아래의 내용을 추가한다.
from django.urls import path
from .views import *
app_name = 'ssti'
urlpatterns = [
path('', index, name='index'),
#(경로, 처리할 view, 패턴 이름)
]
앱 내 views.py 파일에 아래의 내용을 추가해 서버를 구동해 확인해본다.
from django.http import HttpResponse
# Create your views here.
def index(request):
response = HttpResponse()
response.write("<h1>Welcome</h1>")
response.write("<p>This is my first Django. </p>")
return response
(3) HTML 파일 사용하기
setting 파일에 아래의 내용을 추가한다.
import os
# 템플릿 경로
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
template={}를 찾아 TEMPLATE_DIR를 추가한다.
이후 최상위 프로젝트 폴더에 templates>test>index.html을 생성한다.
이후 해당 html 파일이 정상 구동하는걸 확인한다,
(4) 파라미터 주고받기
앱 URL에서 해당 구문을 추가해 name 경로를 name이라는 view로 처리하게 한다.
path('name', name, name='name')
#(경로, 처리할 view, 패턴 이름)
또한 view에 name이라는 함수형 뷰도 추가해준다.
def name(request):
return render(request, 'test/name.html', {'name':'mjjj'})
이 다음 /templates/test 경로에 name.html를 추가한다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django Tutorial v2</title>
</head>
<body>
<h2>Hello {{name}}</h2>
TEST
</body>
</html>
URLconf(매핑해서 나오는 기능) 활용해 간단한 파라미터를 주고받겠다.
앱 URL에서 path('name/<str:keyword>', username, name='username'), 를 추가
views에서 아래 내용을 추가한다.
def username(request, keyword):
return render(request, 'test/name.html', {'name':keyword})
접속 시 ssti/name은 name함수로 ssti/name/str:문자열은 username으로 각각 mjjj와 입력 str를 반환하게 된다.
ssti/name
ssti/name/str:문자열
'Web hacking > 개념 정리 & 심화' 카테고리의 다른 글
HTTPS 프로토콜의 모든 것(SSL인증서, SSL 피닝, TLS, HTTP 인증) (1) | 2022.12.04 |
---|---|
Django를 이용한 SSTI 실습 (0) | 2022.12.01 |
Django 설치 및 실습 - 1 (1) | 2022.11.17 |
Flask(jinja)를 이용한 SSTI 실습 (0) | 2022.11.15 |
[웹 취약점]Openssl 취약한 HTTPS 프로토콜 사용 항목 조회 (0) | 2022.06.02 |