지난번 리눅스(우분투)에서 장고 설치 및 실행의 디렉토리에서 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/
명령어로 폴더 안으로 이동한다.
# 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
를 바탕으로 하여 그 안에geoApp
을 import
하는 개념이라고 생각하면 된다.
우선 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 geoview
와 urlpatterns
에 url(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
와 같이 접속시 아래와 같은 화면이 뜬다.
127.0.0.1:8000/geoApp/
로 접속한다.