이 영역을 누르면 첫 페이지로 이동
caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

페이지 맨 위로 올라가기

caputdraconis

네트워크 관점에서의 클라우드 컴퓨팅을 공부하는 중입니다 :)

Django 공식문서 요약 1

  • 2021.03.24 16:15
  • 언어&프레임워크/Django
글 작성자: caputdraconis
반응형

/* Django 공식 문서를 읽고 공부하며 새롭게 알게된 사실만 기재한 글입니다. */


서버 주소와 포트 설정

python manage.py runserver

기본값으로 설정되어 있는 주소(127.0.0.1)와 포트(8000)으로 서버가 열리는 명령어입니다.

 

이 명령어 뒤에 원하는 포트번호를 추가하면 그 포트로 서버가 열리게 됩니다.

python manage.py runserver 8080

 

기본값으로 설정되어 있는 주소인 127.0.0.1도 바꿔줄 수 있습니다.

python manage.py runserver 0:8080

여기서 0은 0.0.0.0을 의미합니다.

 


화면에 처음 출력해보기

화면 출력을 담당하는 views.py에 간단한 출력 코드를 작성해주자

import django.http import HttpResponse

def index(request):
	return HttpResponse("Hello Django World!")

HttpResponse는 Response를 리턴하는 가장 기본적인 함수로 주로 HTML을 반환하는 함수입니다.

위에서는 장고에게 인사하는 문자열을 넣어주었습니다.

 

이 index라는 이름으로 선언된 함수를 어떻게 호출하냐! 이 index라는 함수가 호출되는 url로 접속을 해야 위의 문자열을 확인할 수 있을 것입니다. 이런 url 관련 설정은 프로젝트 폴더의 urls.py가 총괄합니다. 

 

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', views.index, name='index'),
    path('polls/<int:question_id>/', views.detail, name='detail'),
    path('polls/<int:question_id>/results/', views.results, name='results'),
    path('polls/<int:question_id>/vote/', views.vote, name='vote'),
    path('admin/', admin.site.urls),
]

polls라는 Application을 추가한 상태로 작성된 urls.py입니다.

 

공식 문서에 path 함수에 대해서 적어놓은 설명

요론 곳들이 있지만,  route, view만 살펴보자면, 명시된 url(route)로 접속시 view의 자리에 명시되어 있는 view 함수를 호출합니다. 

즉 위의 코드에서는 127.0.0.1:8000/polls 라는 주소로 들어갔을 때 장고에게 인사하는 문자열을 만나게 됩니다.


 

makemigrations 와 migrate의 역할

 

python manage.py makemigrations

 

python manage.py migrate

 

그냥 DB 관련 설정 파일을 만들고 적용해준다는 전체적인 역할만 알고있던 친구들인데, 차이를 알았습니다..!

makemigrations는 models.py에 개발자가 DB의 구조를 파이썬 코드로 짜놓았을 때, 그 코드를 장고가 SQL 문으로 바꾸는 과정을 실행하는 명령어입니다.

makemigrations를 실행했을 때 장고가 만들어낸 SQL문입니다. models.py에 적힌 그대로를 SQL문으로 바꾸어놓은 것을 확인할  수 있습니다.

 

migrate 명령어는 이를 실제 연결해놓은 DB에 적용하는 명령어입니다. migrate 명령어를 실행해야 DB에서 결과를 확인할 수 있고, migrate 명령어 실행 전에는 DB에 아무런 일이 일어나지 않음을 기억하쟈..!

 


Admin 페이지에서 사용자가 추가한 앱 보기

따로 설정하지 않고 admin 페이지에 들어갔을 때는 따로 추가한 Application이 보이지 않는다. admins.py에서 추가해주어야 한다.

 

from django.contrib import admin
from polls.models import Question
# Register your models here.

admin.site.register(Question)

 

 


HttpResponse + loader => render

 

HttpResponse와 loader를 사용

 

render를 사용

The render() function takes the request object as its first argument, a template name as its second argument and a dictionary as its optional third argument. It returns an HttpResponse object of the given template rendered with the given context.

 

 


app_name 추가

 

urlpatters에 path 마다 name을 설정해줌으로써

hardcoded된 url에서 벗어날 수 있었습니다. 근데 지금 추가되어 있는 앱 polls 뿐만 아니라 다른 앱들이 10개 부터 크게는 100개까지 추가되는 프로젝트에서 저 detail이라는 이름을 가진 path가 중복된다면, 장고는 detail이라는 이름을 가진 url중 어떤 url을 가져와야 될지 모르게 됩니다. 여기서 추가해야 되는게 app_name

urls.py에 app_name = "polls"를 추가해주고 detail이라는 이름 앞에 polls의 detail을 가져오라는 polls:를 붙여준다면 헷갈리지 않고 잘 가져올 수 있을 것 입니다. 아래와 같이 말이죰^_^

 

urls.py에 app_name을 추가한 모습
app_name 을 명시하여 더 확실하게..!

 

 

하루에 요거밖에 못하다니

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Django] 프로젝트에 toast-ui-editor 적용하기(django admin)

    [Django] 프로젝트에 toast-ui-editor 적용하기(django admin)

    2022.06.10
  • [Django] Django 프로젝트 중 맞닥뜨린 높은 벽들

    [Django] Django 프로젝트 중 맞닥뜨린 높은 벽들

    2022.05.24
  • Django 상속

    Django 상속

    2021.03.02
  • Framework Django 기초 정리(3)

    Framework Django 기초 정리(3)

    2021.02.23
다른 글 더 둘러보기

정보

caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • 🥚고리즘 (13)
      • 겅부겅부🙃 (10)
        • Naver CS50 코칭스터디 (2)
        • Machine Learning (1)
        • Computing System (6)
      • 언어&프레임워크 (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • 지옥방 스터디 (22)
        • 여름방학 스터디 (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • 알고 있으면 도움되지 않을까,,? (23)
      • 일상다반사 (1)
      • 근황 정리 (1)
      • 42 Seoul (1)
        • Setting (1)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 웹해킹.kr
    • Python
    • old-16
    • 파이썬기초
    • 드림핵
    • 파이썬함수
    • 리스트함수
    • 파이썬

    나의 외부 링크

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. Copyright © caputdraconis.

    티스토리툴바