[web sever 구축_파이선_DJANGO #3 ] Django WEB 배포하기
[web sever 구축_파이선_DJANGO #3 ]Django WEB 배포하기
글의 순서는 아래와 같습니다.
===========================================================================
[ 장고 설치하기] ==> 기존글과 동일
[ 설정변경하기]
[ 데이터베이스 설정하기]
[ 어플리케이션 만들기]
[ 블로그글 모델 만들기]
[ 장고 관리자 등록]
[ 배포하기]
-PythonAnywhere
[참고자료 ]
https://tutorial.djangogirls.org/ko/deploy/
https://tutorial.djangogirls.org/ko/installation/
============================================================================
[ 장고 설치하기] ==> 기존글과 동일
아나콘다 콘솔화면에서 ==> pip install django
=> 장고설치는 비주얼한 화면등은 없음, 장고설치후 아래 명령어 실행시 프로젝트 틀을 만들어 주는 역할을 함
django-admin startproject <프로젝트이름> => mysite
=> "<c:\anaconda36>c:\>django-admin startproject mysite " 로 입력하면, c 드라이브에 mysite 폴더가 생성되면서,
관련 파일들이 같이 생성이되어 디렉토리에 저장이 된다.
이 화일을들을 아래와 같이 수정해 나가면 됨
python manage.py runserver
웹브로우저 실행: http://127.0.0.1:8000/
mysite/settings.py
TIME_ZONE = 'Asia/Seoul'
mysite/settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
mysite/settings.py
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
[ 데이터베이스 설정하기]
mysite/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
데이터베이스 생성 => 프롬프트에서 python manage.py migrate 실행
[ 어플리케이션 만들기]
python manage.py startapp blog =>blog라는 이름의 어플리케이션 만들기
mysite/settings.py 화일 수정
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
[ 블로그글 모델 만들기]
blog/models.py
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey('auth.User')
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
python manage.py makemigrations blog ==> 데이터베이스 반영전 마이그레이션 화일 준비함
python manage.py migrate blog ==> 글 모델이 데이터베이스에 저장됨
[ 장고 관리자 등록]
'settings.py'중 LANGUAGE_CODE = 'en-us'를 LANGUAGE_CODE = 'ko' ==> 관리자 화면 한국어로 변경
blog/admin.py ==> 화일수정
from django.contrib import admin
from .models import Post
admin.site.register(Post)==> 모델 등록하기
[ 배포하기]==> PythonAnywhere
1. GIT, GITHUB를 설치하고, 저장소를 만들어서 저장한다
- GIT 을 설치한다
- 소스코드를 COMMIT하여, GIT에 버전관리 등록한다
- GITHUB 설치한다
- GITHUB에 저장소를 만들어, GIT의 화일을 싱크해 온다 ( GIT에서 PUSH 하기)
- 세부방법은 이전글 http://daviduino.co.kr/85 을 참고한다
2. PythonAnywhere에 블로그 설정하기
- 회원가입한다(무료)
3. GitHub에서 PythonAnywhere로 코드 가져오기
- 배시(Bash)" 콘솔을 실행해서, 콘솔화면으로 들어간다
- PythonAnywhere command-line
. $ git clone https://github.com/<your-github-username/my-first-blog.git
. $ tree my-first-blog 명령어를 입력 ==> 화일이 제대로 불러와졌는지 확인가능
PythonAnywhere command-line
$ tree my-first-blog
my-first-blog/
├── blog
│ ├── __init__.py
│ ├── admin.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.pyㅊㅇ ㅡ
│ └── views.py
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
4. PythonAnywhere에서 가상환경(virtualenv) 생성하기
- PythonAnywhere command-line
$ cd my-first-blog
$ virtualenv --python=python3.6 myvenv
Running virtualenv with interpreter /usr/bin/python3.6
[...]
Installing setuptools, pip...done.
$ source myvenv/bin/activate ==> 위에서 설치한 가상환경을 활성화 함
(myvenv) $ pip install django~=1.11.0 => 가상환경 안에서 장고를 설치함
Collecting django
[...]
Successfully installed django-1.11.3
5분정도 시간이 소요될수 있음
5. PythonAnywhere에서 데이터베이스 생성하기
- ythonAnywhere command-line
. (mvenv) $ python manage.py migrate
Operations to perform:
[...]
Applying sessions.0001_initial... OK
. (mvenv) $ python manage.py createsuperuser
6. web app으로 블로그 배포하기
- PythonAnywhere 대시보드 ==>Web==>Add a new web app
- 도메인 이름을 확정한 후, 대화창에 수동설정(manual configuration)
- Python 3.6을 선택하고 다음(Next)을 클릭하면 마법사가 종료됩니다.
. Note "Django"가 아니라 "수동설정(Manual configuration)"을 선택해야함
. 기본 PythonAnywhere Django 설정을 위해서 이방법이 유리함.
7. 가상환경(virtualenv) 설정하기
- "가상환경(Virtualenv)" 섹션에서 가상환경 경로를 입력(Enter the path to a virtualenv) ==> /home/<your-username>/my-first-blog/myvenv/
라고 입력
8. WSGI 파일 설정하기
- "WSGI 설정 파일(WSGI configuration file)" ==> /var/www/<your-username>_pythonanywhere_com_wsgi.py부분) 클릭
- 모든내용을 삭제==>아래 내용으로 기록
import os
import sys
path = '/home/david2012/my-first-blog/mysite2/' # PythonAnywhere 계정으로 바꾸세요.(하기 청색부분 참고바람)
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite2.settings'
from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())
** 특히 " path = '/home/david2012/my-first-blog/mysite2/' # PythonAnywhere 계정으로 바꾸세요. " 요 부분을 설정할때 주의를 요한다
본 글에서는 아래와 같이 설정했을때(/home/david20120720/mtsite, 정상작동을 했음 . 예전에 상기와 같이 했을때 정상작동을 했음
즉 프로그램의 디렉토리 저장상태에 따라 결정하면 됨.
아래 그림은
david20120720 계정의 mysite 프로젝트를 path 로 지정하고
path안의 폴더 mysite안의 setting (mysite.settings) 화일에 접근하는것을 나타내고 있음.
- 저장=> WEB 클릭
- 모두 끝았음. RELOAD 및 홈페이지 실행시 웹이 실행됨
9. 구현된 모습 : 정상작동중
http://david20120720.pythonanywhere.com/ 로 접속하면 아래 화면이 나오고
david20120720.pythonanywhere.com/admin/으로 접속하고, 로긴 하면 아래와 같이 어플리케이션이 실행됨
[참고자료 ]
'프로젝트 > Web Server 구축' 카테고리의 다른 글
[web sever 구축_파이선_DJANGO #5 vote.git 투표결과 동적으로 나타내기 (0) | 2017.09.17 |
---|---|
[web sever 구축_파이선_DJANGO #4 ]pythonanywhere에 투표 Django WEB 배포하기 (0) | 2017.09.15 |
[web sever 구축_파이선_DJANGO #2 ] 버전/백업관리를 위한 GIT 활용 (0) | 2017.09.11 |
[web sever 구축_파이선_DJANGO #1]Django로 웹 사이트 구축하기 (1) | 2017.09.10 |
IOT(사물인터넷) 웹 서비스 구축하기( github에 웹서버 적용) #5 (0) | 2017.07.23 |