Day 1 Django

김의석 ·2023년 12월 15일

Django

목록 보기
1/39

Routing URLConf

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pokoapp.urls'))
]
  • Project의 urls.py의 코드 작성
  • Routing : Rout는 경로를 의미, Routing은 사용자가 접속한 경로를 누가 처리할 것인가를 지정하는 것.
  • urlpatterns : routing과 관련된 정보를 작성한다.
  • 기본적인 사용자 접속 경로의 형태 : http://127.0.0.1/
  • path('사용자가 접속하는 경로',include('pokoapp.urls'))
  • 'admin/': django가 기본적으로 가지고 있는 관리자 화면으로 이동하기 위한 routing 설정


  • Django에서의 Routing 순서(참고)
    • 사용자 경로 접속 - Project의 urls.py - app의 urls.py - app의 view.py 내 함수의 return 값 출력



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

urlpatterns = [
    # 사용자가 path가 없는 경로 접속했을 때
    path('', views.index),
    path('create/', views.create),
    path('read/<id>/', views.read)
    # <id> : 가변성이 있는 값이 경로에 포함될 경우
  • app 내에 urls.py의 코드 작성
  • 사용자가 path가 없는 경로로 접속할 경우 , 위 코드와 같이 작성한다.
  • 경로 내에 가변성이 있는 값이 포함될 경우 <>에 가변성이 있는 값을 넣어 준다.



topics = [
    {'id' : 1, 'title' : 'routing', 'body' : 'Routing is ..'},
    {'id' : 2, 'title' : 'view', 'body' : 'View is ..'},
    {'id' : 3, 'title' : 'model', 'body' : 'Model is ..'}
]

import random
from django.shortcuts import render, HttpResponse

def index(request):
    #return HttpResponse('<h1>Random</h1>'+str(random.random()))
    global topics
    ol = ''
    for topic in topics:
        ol += f'<li><a href="/read/{topic["id"]}">{topic["title"]}</a></li>'
        
    return HttpResponse(f'''
                        <html>
                        <body>
                            <h1>Django</h1>
                            <ol>
                                {ol}
                            </ol>
                            
                            <h2>Welcome</h2>
                            Hello, Poko
                        </body>
                        </html>
                        ''')
    
def create(request):
    return HttpResponse('create!')

def read(request, id):
    return HttpResponse('read!'+ id)
  • app의 views.py의 코드 작성
  • 함수를 작성하여 app의 urls.py에서 들어오는 각각의경로를 Routing 한다. views.py는 app에서 기능의 공장과 같은 역할을 한다.
  • 접속이 들어올 때마다 랜덤한 정보를 동적으로 만들어주는 웹앱 만들기.
    • id, tittle, body를 딕셔너리로 생성 후 리스트에 저장한다.
    • 리스트를 함수 내 glob 변수로 선언한다.
    • 빈 ol 생성, ol은 html에서 순서가 있는 리스트를 생성한다.
    • for문을 사용하여 리스트 내 딕셔너리를 통해 빈 ol을 작성한다. 이때 fstring 사용(코드참고)
profile
널리 이롭게

0개의 댓글