TIL 221216 [DJango] #1

강지훈·2022년 12월 16일
0

장고는 웹 프로그램을 쉽고 빠르게 만들어주는 웹 프레임워크

장고의 빠른 개발 속도를 보여주는 예
def index(request):
return HttpResponse("Hello World")

장고는 보안 공격을 기본으로 잘 막아준다
ex) SQL 인젝션 , XSS , CSRF , 클릭재킹

  • SQL인젝션은 악의전인 SQL을 주입하여 공격하는 방법
  • XSS는 자바스크립트를 삽입해 공격하는 방법
  • CSRF는 위조된 요청을 보내는 공격 방법
  • 클릭재킹은 사용자의 의도하지 않은 클릭을 유도하는 공격 방법

파이썬 가상 환경 알아보기
파이썬 가상 환경을 이용하면 하나의 PC안에 독립된 가상 환경을 여러 개 만들 수 있다.

URL 과 뷰
앱(App)
프로젝트에 기능을 추가하기 위해서는 앱을 생성해야 한다.
이제 게시판 기능을 담당할 pybo 앱을 생성해보자

404는 HTTP 오류코드 중 하나이다
404 오류는 브라우저가 요청한 페이지를 찾을 수 없을 경우에 발생

config/urls.py 파일에 pybo/ URL에 대한 매핑을 추가하는 것

http://localhost:8000/pybo
views.index 생성

URL 분리
pybo 앱에 관련한 것들은 pybo 앱 디렉터리 하위에 위치해야한다.
config의 urls.py 파일은 앱이 아닌 프로젝트 성격의 파일이므로
이 곳에는 프로젝트 성격의 URL 매핑만 추가되어야 한다.

pybo/ URL에 대한 매핑을 path('pybo/', views.index)에서
path('pybo/',include('pybo.urls'))로 수정했다.

path('pybo/', include('pybo.urls'))의 의미는 pybo/ 로 시작하는 페이지를 요청하면 이제 pybo/urls.py 파일의 매핑 정보를 읽어서 처리하라는 의미이다.
pybo/question/create , pybo/answer/create 등의
pybo/로 시작하는 URL을 추가해야 할 때
config/urls.py 파일을 수정할 필요 없이 pybo/urls.py 파일만 수정하면 된다.

모델
장고는 모델(Model)을 이용하여 데이터베이스를 처리한다.
보통 데이터베이스에 데이터를 저장하고 조회하기 위해서 SQL 쿼리문을 이용해야 하지만 장고의 모델을 사용하면 이런 SQL쿼리문의 도움없이 데이터를 쉽게 처리 할수 있다.

모델 작성하기
pybo가 사용할 데이터 모델을 만들어 보자.
파이보는 질문과 답변을 할 수 있는 파이썬 게시판 서비스이다.

모델의 속성
[Question 모델]
subject 질문의 제목
content 질문의 내용
create_date 질문을 작성한 일시

[Answer 모델]
question 질문(어떤 질문의 답변인지 알아야하므로 질문 속성 필요)
content 답변의 내용
create_date 답변을 작성한 일시

모델 사용하기
모델 사용법을 장고 셀로 익혀보자. 장고 셸은 다음과 같이 실행
(mysite) c:\projects\mysite> python manage.py shell

장고 셸에서
from pybo.models import Question, Answer

from django.utils import timezone
q = Question(subject='' , content='', create_date=timezone.now())
q.save()

q.id

Question 조회
Question.objects.all()

장고 관리자

profile
never stop

0개의 댓글