Backend/Django

Django 프로젝트 기본 페이지, 어드민 admin 생성, 서브앱 생성

쏠솔랄라 2023. 7. 7. 21:21

 

 

프로그램 기본

 

 

Hello > urls.py

 

 

urls 페이지에서 url 세팅

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
]

index 페이지를 생성하고 views에 연결

 

 

Hello > views.py

 

 

views 페이지 생성

def index(request):
    return HttpResponse("Index Page입니다.")

 

 

 

 

TERMINAL에서 서버 접속 코드 입력

python ./Hello/manage.py runserver

 

생성된 호스트 주소로 접속

 

 

 

 

호스트 페이지에서 index로 접속

index 페이지가 정상적으로 작동함

 

 


 

 

admin 생성

 

: 장고에서 기본적으로 제공하는 회원관리 시스템

 

 

cmd

 

 

 

 

python manage.py migrate

 

 

 

 

python manage.py createsuperuser

 

 

 

 

호스트 사이트에서 admin 페이지로 접속

 

 

 

 

생성한 아이디/비밀번호로 접속

 

 

 

 


 

 

서브앱 생성 :  VS Code

 

 

 

 

TERMINAL에서 서브앱 생성 코드 입력

cd Hello // 프로젝트 폴더로 이동

.\manage.py startapp overview // overview 서브앱 생성

 

 

Hello > settings.py

 

 

모체인 Hello의 setting에서 앱 추가

 

 

Hello > urls.py 

 

 

urls 페이지에서 include 경로 추가

path에 overview 페이지 경로 추가

 

 

Hello > overview > urls.py

 

 

서브앱 내의 urls 페이지에 하위 경로 페이지 추가

계층적으로 들어가는 구조

 

 

Hello > overview > views.py

 

 

from django.shortcuts import render
from django.http import HttpResponse, HttpRequest

# Create your views here.
def index(request : HttpRequest):
    return HttpResponse('overview & index page')

def overview(request : HttpRequest):
    return HttpResponse("overview/overview page")

뷰페이지 내용 추가

 

 

 

 

overview 페이지로 이동

정상 출력 확인

 

 


 

 

Exercise

 

 

여러 언어 지원 페이지 구현

 

 

 

 

urls 페이지에서 re_path import

path에 언어별 경로 세팅

re_path에 경로 세팅

 

 

* path : 프로젝트내부에 URL을 등록하는 함수
url에 맞는 실행내용을 가진 함수와 연결하는 역할
url을 통해서 app안의 urls와 연결하는 역할

 


URL의 계층화
기능별 View들을 관리하기위해서 APP을 만든다
다수의 url들을 APP별로 관리할수 있도록 계층화를 한다
Django의 확장성과 이식성 그리고 유연성을 부각시키기 위해서 만들어진다

SubApp 만들기
manage.py 경로와 파일명 startapp [App명]
* 이슈 : python을 제일 앞에 붙여서 만든다
re_path
re = Regex(정규식)

 

 

 

 

views 페이지 작성

언어별 페이지 세팅(2가지 방법)

 

 

from django.http import HttpRequest, HttpResponse

def index(request):
    return HttpResponse("Index Page입니다.")

def document(request,lang):
    lang_code = {"ko":"한국어", "us":"영어", "fr":"프랑스", "jp":"일본"}

    if lang_code.get(lang):
        message = f"{lang_code.get(lang)} 페이지 입니다."
    else:
        message = "{} 알 수 없는 코드 입니다.".format(lang)
    return HttpResponse(message)

def document1(request,lang):
    lang_code = {"ko" : "한국어","us" : "영어","fr":"프랑스","jp":"일본"}

    message = f"{lang_code.get(lang)} 페이지 입니다."

    return HttpResponse(message)

 

 

 

 

TERMINAL에서 실행 코드 입력

python ./Hello/manage.py runserver

 

 

 

 

설정한 경로 url 중 필요한 페이지로 이동

4.와 5.의 2가지 방법으로 언어페이지에 접근할 수 있다

 

 

 

 

경로 별 접속 시 올바르게 출력됨