본문 바로가기

프로그래머스 데브 코스/TIL

[6기] 프로그래머스 인공지능 데브코스 18일차 TIL

0918

5주차-Day1) django

django project 생성

기본적인 연결과 코드 정리
# 파이썬 가상환경으로 이동 후 (꼭 이동하지는 않아도 됨)
# Terminal

pip install django

django-admin startproject <프로젝트-제목>  # 장고 프로젝트 생성

# 생성한 장고 프로젝트 폴더 안으로 이동 후

django-admin startapp <앱-이름>   # 장고 앱 생성

python manage.py runserver   # 터미널에 뜨는 주소로 들어가면 페이지가 뜨는 걸 확인할 수 있음
  • 장고는 한 프로젝트 안에 여러 앱들로 구성되어 있음
  • 여러 앱들은 그 안에 다양한 페이지를 만들 수 있음

 

django app 페이지 생성 및 연결

기본적인 연결과 코드 정리
# <프로젝트-제목> 폴더 안에 있는 settings.py 파일 안

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'homepage',   # 여기 마지막 위치에 <앱-이름>을 넣으면 앱과 연결할 수 있음
]


# <앱-이름> 폴더 안에 사용할 html 파일 만들고 난 후
# <프로젝트-제목> 폴더 안에 있는 urls.py 파일 안

from django.contrib import admin
from django.urls import path
from homepage.views import index   # 경로 성공적으로 연결하기 위해 <앱-이름> 내 views.py와 html 파일 선언(?)

urlpatterns = [
    path('', index), # 127.0.0.1/   # path('', <html-파일-제목>) 형태로 경로 연결해 주기
    path('admin/', admin.site.urls), # 127.0.0.1/admin/
]


# <앱-이름> 폴더 안 views.py 파일 안

from django.shortcuts import HttpResponse, render
def index(request):
    # return HttpResponse("<h1>Hello World!</h1>")  # 이렇게만 써도 페이지에 뜸
    job = "Student"
    return render(request, 'index.html', {"my_job" : job})  # 위에서 만든 html 파일로 job 문자열을 my_job 변수로 넘기기


# 아까 만든 html 파일 안

<!DOCTYPE html>
<html>
    <head>
        <title>페이지 상단바에 뜨는 제목</title>
    </head>
    <body>
        <h1>페이지에 뜨는 글씨</h1>
        <p>저는 {{my_job}}입니다</p>   # {{}} 이렇게 중괄호 두 개를 침으로써 views.py에서 선언한 변수를 가지고 와 쓸 수 있음
        {% for i in range(10) %}   # 이 코드를 통해 html 안에서 for문을 사용할 수 있음( if문도 사용 가능)
            <p>{{ i }}</p>
        {% endfor %}
    </body>
</html>