본문 바로가기
Python/Django Ⅰ

서브페이지 URLPATTERNS

by Mr.DonyStark 2024. 4. 15.

□ 사진과 같이 onememos라는 앱을 생성하였고, 앱에 대한 메인 url과 서브 url을 지정하였음.

*app 생성이 되면 부모폴더와 달리 urls.py가 없으므로 직접 수동으로 생성해줘야함

app 메인 url = "" http://localhost:*****/onememos/
app 서브 url = "서브url명/"
*서브 url명은 app의 views.py에서 지정한 함수명으로 지정
http://localhost:*****/onememos/서브url명
#라이브러리
from django.urls import path
from . import views

urlpatterns = [
    #path(1."", 2.어떤 것, 즉, view 파일에서 정의한 함수, name="대표키워드")
    #"" 웹 주소~~(http://localhost:*****/onememos/)와 같은의미, 2는 어떤것(view)
    path("", views.main, name="main"), #view파일에서 지정한 main 함수로 연결(views에서 정의한 함수명과 동일하게 설정) + (name 생략가능)
    path("createMemo/", views.createMemo) #onememos/createMemo url. view의 createMemo 함수 호출
]

 

□ 물론 URL PATTERN 정의를 위해 onememos app의 Views.py에서 함수를 정의하였고 이에 기반하여 URL PATTERN을 정의하였음. 즉, views에서 정의한 함수를 통해 URLPATTERN을 정의.

from django.shortcuts import render
from django.http import HttpResponse #해당 페이지에대한 응답관련 라이브러리 
from .models import *

def main(request):  #requests에 주소가 매게변수로 들어감 / index 또는 main으로 기재해도됨
    #요청에 따른 응답으로 뿌려주겠음
    #return HttpResponse("OneMemos!Hello, World!:-)"
    return render(request, "main.html") #templates>main.html을 틀어놓은다.

def createMemo(request): #requests에 주소가 매게변수로 들어감 / index 또는 main으로 기재해도됨
    memoContent = request.POST["memoContent"] 
    memoName = request.POST["memoName"]
    memoEmail = request.POST["memoEmail"]
    return HttpResponse("Create Memo = "+ memoContent + memoName + memoEmail)

 

onememos app의 url 정의가 끝났다면 프로젝트 부모폴더의 urls.py에 include함수를 활용해 app에대한 url을 포함시킨다.

from django.contrib import admin
from django.urls import path, include #path함수, include 함수사용을 위해 호출
#urlpatterns 정리
# └ /(슬래시)는 기본적으로 장고가 알아서하지만 특별한 경우가 아니라면 /(슬래시)를 붗여주자
# └ 마지막에 ,(콤마)를 생략해도되고 붙여도됨
# └ 서버구동시 변화가 감지되면서 자동으로 리로더
# └ 잘못된 코드로 오류가 나면 서버구동이 자동적으로 감지하고 에러를냄. 수정되면 다시 재구동함.
# └ 초기화면 view.index 또는 views.main으로 해도됨.
urlpatterns = [
    #하위앱에 대한 url주소와 urls.py (앱명.urls 기재) 경로
    path('admin/', admin.site.urls),
    path("onememos/", include("onememos.urls")), #onememos 앱 하위에 urls
]

 

'Python > Django Ⅰ' 카테고리의 다른 글

CSRF_TOKEN 과 DB 입출력  (1) 2024.04.15
SQLite 를 활용한 DB 조회  (0) 2024.04.15
Models 생성  (0) 2024.04.13
Django 주요개념 : 정리  (0) 2024.04.11
가상환경 설치 & 장고 설치+삭제 & 서버구동 + superuser 생성  (0) 2024.04.08