DEVOPS

패스트캠퍼스 챌린지 14일차[Django 기초]

뇌장하드 2021. 11. 14. 19:33

이번 수업에서는 저번에 만든 페이지에서 좀더 추가해보는 과정이다.

관리자 생성하기

$ python manage.py createsuperuser

이 명령어를 치면 아이디와 비밀번호를 적으라는 명령을 다 실행해주면 관리자 계정이 생성이 된다.

 http://127.0.0.1:8000/admin/

위와 같은 예시로 admin으로 들어가면 아이디와 비밀번호를 적는 페이지가 보입니다.

장고에서의 admin기능은 편집 가능한 그룹과 사용자와 같은 몇 종류의 컨텐츠를 볼 수 있습니다. 

이와 같이 손쉽게 코드가 아닌 페이지에서 직접 관리를 해줄수 있는 기능도 제공을 해줍니다.

정말 편해보입니다~~

 

 

이제, polls/views.py 에 뷰를 추가해 봅시다

def detail(request, question_id):
    return HttpResponse("You're looking at question %s." % question_id)

def results(request, question_id):
    response = "You're looking at the results of question %s."
    return HttpResponse(response % question_id)

def vote(request, question_id):
    return HttpResponse("You're voting on question %s." % question_id)

 

 path() 호출을 추가하여 이러한 새로운 뷰를 polls.urls 모듈로 연결하겠습니다.

 

from django.urls import path

from . import views

urlpatterns = [
    # ex: /polls/
    path('', views.index, name='index'),
    # ex: /polls/5/
    path('<int:question_id>/', views.detail, name='detail'),
    # ex: /polls/5/results/
    path('<int:question_id>/results/', views.results, name='results'),
    # ex: /polls/5/vote/
    path('<int:question_id>/vote/', views.vote, name='vote'),
]

사용자가 웹사이트의 페이지를 요청할 때, 예로 《/polls/34/》를 요청했다고 하면, Django는 mysite.urls 파이썬 모듈을 불러오게 됩니다. ROOT_URLCONF 설정에 의해 해당 모듈을 바라보도록 지정되어 있기 때문입니다. mysite.urls에서 urlpatterns라는 변수를 찾고, 순서대로 패턴을 따라갑니다. 'polls/'를 찾은 후엔, 일치하는 텍스트("polls/")를 버리고, 남은 텍스트인 "34/"를 〈polls.urls〉 URLconf로 전달하여 남은 처리를 진행합니다. 거기에 '<int:question_id>/'와 일치하여, 결과적으로 detail() 뷰 함수가 호출됩니다.

 

render()란:

템플릿에 context 를 채워넣어 표현한 결과를 HttpResponse 객체와 함께 돌려주는 구문은 자주 쓰는 용법입니다. 따라서 Django는 이런 표현을 쉽게 표현할 수 있도록 단축 기능(shortcuts)을 제공합니다.

 

404 에러 일으키기

from django.http import Http404
from django.shortcuts import render

from .models import Question
# ...
def detail(request, question_id):
    try:
        question = Question.objects.get(pk=question_id)
    except Question.DoesNotExist:
        raise Http404("Question does not exist")
    return render(request, 'polls/detail.html', {'question': question})

뷰는 요청된 질문의 ID 가 없을 경우 Http404 예외를 발생시킵니다.

 

 

 

 

 


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#한번에끝내는AWS인프라구축과DevOps운영초격차패키지Online

https://bit.ly/3FVdhDa

<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr