django(장고) 페이지(앱) 추가하기

icymunchhhiip·2021년 2월 25일
0

후배들 갈켜주기

목록 보기
5/5
post-thumbnail

지난번 리눅스(우분투)에서 장고 설치 및 실행의 디렉토리에서 geoApp 폴더(기존에 작업하던 장고 앱)를 넣었다.
장고는 앱 단위로 관리된다.
Project1/bin의 구조는 아래와 같다.

Project1/bin
├── __pycache__
│   └── django-admin.cpython-36.pyc
├── activate
├── activate.csh
├── activate.fish
├── activate_this.py
├── chardetect
├── django-admin
├── django-admin.py
├── f2py
├── f2py3
├── f2py3.6
├── mysite
│   ├── db.sqlite3
│   ├── *geoApp*
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── migrations
│   │   ├── models.py
│   │   ├── templates
│   │   ├── tests.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── manage.py
│   ├── media
│   │   └── shp
│   ├── mysite
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   ├── settings.py
│   │   ├── settings2.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── static
│       ├── bootstrap
│       └── jquery
├── pip
├── pip3
├── pip3.6
├── python -> python3.6
├── python-config
├── python3 -> python3.6
├── python3.6
├── uwsgi
└── wheel

하지만 이 상태로는 새로 넣은 앱이 작동되지 않기 때문에 몇가지 추가 작업이 필요하다.
우선 편의상 cd Project1/bin/mysite/ 명령어로 폴더 안으로 이동한다.

1. mysite/settings.py 수정

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'geoApp'
]

mysite/settings.py의 소스코드에서 아래로 내리다보면 INSTALLED_APPS가 있다.
여기에 'geoApp'을 추가한다.
이 의미는 mysite를 바탕으로 하여 그 안에geoAppimport하는 개념이라고 생각하면 된다.

2. mysite/urls.py 수정

우선 geoApp/views.py에서 작성한 뷰의 형태를 확인해야 한다.
참고 링크 - 클래스 기반 뷰 vs 함수 기반 뷰
클래스형 뷰인가, 혹은 함수형 뷰인가에 따라 urls.py의 urlpatterns 작성 형태가 다르기 때문이다.
geoApp/views.py의 소스코드의 일부는 아래와 같다.

def home(request):

함수형 뷰임을 알 수 있다.

from django.conf.urls import url
from django.contrib import admin
from geoApp import views as geoview

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^geoApp/',geoview.home,name="home"),
]

from geoApp import views as geoviewurlpatternsurl(r'^geoApp/',geoview.home,name="home"),를 추가한다.
as geoview로 geoApp의 별명을 붙여주었다.
geoApp/이 부분은 사이트 접속 시 ip주소 뒤에 붙여지는 것으로 임의 설정이 가능하다. 예를 들어, 127.0.0.1:8000/geoApp/과 같다.

여기서 base url로 접속할 때 뜨는 페이지도 추가해주어야 한다. 아니면 경로가 없다고 에러가 뜬다.
설정하지 않으면 127.0.0.1:8000/geoApp/ 접속은 가능하지만 127.0.0.1:8000와 같이 접속시 아래와 같은 화면이 뜬다.

3. 테스트

127.0.0.1:8000/geoApp/로 접속한다.

profile
🐣 behance.net/5c533018

0개의 댓글