[web sever 구축_파이선_DJANGO #4 ]pythonanywhere에 투표 Django WEB 배포하기
기존에 작성했던 투표관련 웹 "vote" Django WEB 을 pythonanywhere에 배포하는 과정입니다.
특히 디렉토리 구조에 신경쓰지 않으면, 배포시 에러가 발생하므로, 유심히 볼 필요가 있습니다.
글의 순서는 아래와 같습니다.
===========================================================================
6. 가상환경(virtualenv) 설정하기
7. WSGI 파일 설정하기
8. 구현된 모습 : 정상작동중
==>http://david20120720.pythonanywhere.com/
9. 참고 : pythonanywhere 가입후 자동설치되는 화일 구조
10. source file
[ 참고자료
https://programmers.co.kr/learn/courses/6
===========================================================================
[ 배포하기]==> PythonAnywhere
1. GIT, GITHUB를 설치하고, 저장소를 만들어서 저장한다
==> 참고글 http://daviduino.co.kr/86
- github에 올려진 형태 : 디렉토리 구조가 틀리면 web 실행시 에러 발생함, 구조를 맞추어야 함.
2. GitHub에서 PythonAnywhere로 코드 가져오기
- 배시(Bash)" 콘솔을 실행해서, 콘솔화면으로 들어간다
- PythonAnywhere command-line
. $ git clone https://github.com/david20120720/vote.git
. $ tree vote 명령어를 입력 ==> 화일이 제대로 불러와졌는지 확인가능 , 디렉토리 구조가 틀리면 배포시 에러 발생함
PythonAnywhere command-line
$ tree vote
13:27 ~ $ tree vote
vote
├── db.sqlite3
├── elections
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-36.pyc
│ │ ├── admin.cpython-36.pyc
│ │ ├── models.cpython-36.pyc
│ │ ├── urls.cpython-36.pyc
│ │ └── views.cpython-36.pyc
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── 0002_auto_20170910_1447.py
│ │ ├── 0003_auto_20170910_1714.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ │ ├── 0001_initial.cpython-36.pyc
│ │ ├── 0002_auto_20170910_1447.cpython-36.pyc
│ │ ├── 0003_auto_20170910_1714.cpython-36.pyc
│ │ └── __init__.cpython-36.pyc
│ ├── models.py
│ ├── templates
│ │ └── elections
│ │ ├── area.html
│ │ └── index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
└── mysite
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-36.pyc
│ ├── settings.cpython-36.pyc
│ ├── urls.cpython-36.pyc
│ └── wsgi.cpython-36.pyc
├── settings.py
├── urls.py
└── wsgi.py
3. PythonAnywhere에서 가상환경(virtualenv) 생성하기
- PythonAnywhere command-line
$ cd vote
$ 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분정도 시간이 소요될수 있음
4. PythonAnywhere에서 데이터베이스 생성하기
- pythonAnywhere command-line
. (mvenv) $ python manage.py migrate
Operations to perform:
[...]
Applying sessions.0001_initial... OK
. (mvenv) $ python manage.py createsuperuser
5. web app으로 블로그 배포하기
- PythonAnywhere 대시보드 ==>Web==>Add a new web app
- 도메인 이름을 확정한 후, 대화창에 수동설정(manual configuration)
- Python 3.6을 선택하고 다음(Next)을 클릭하면 마법사가 종료됩니다.
. Note "Django"가 아니라 "수동설정(Manual configuration)"을 선택해야함
. 기본 PythonAnywhere Django 설정을 위해서 이방법이 유리함.
6. 가상환경(virtualenv) 설정하기
- "가상환경(Virtualenv)" 섹션에서 가상환경 경로를 입력(Enter the path to a virtualenv) ==> /home/david20120720/vote/myvenv/
라고 입력
7. WSGI 파일 설정하기
- "WSGI 설정 파일(WSGI configuration file)" ==> /var/www/<your-username>_pythonanywhere_com_wsgi.py부분) 클릭
- 모든내용을 삭제==>아래 내용으로 기록
import os
import sys
path = '/home/david20120720/vote/' # PythonAnywhere 계정으로 바꾸세요. ==> vote까지만 입력한다, mysite 까지 들어가면 에러 발생함.
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())
8 directories, 32 files
- 저장=> WEB 클릭
- 모두 끝았음. RELOAD 및 홈페이지 실행시 웹이 실행됨
8. 구현된 모습 : 정상작동중
9. 참고 : pythonanywhere 가입후 자동설치되는 화일 구조
10. source file
[ 참고자료]
'프로젝트 > Web Server 구축' 카테고리의 다른 글
[web sever 구축_파이선_DJANGO #6 예외처리,템플릿상속,네비게이션,화일사용 (0) | 2017.09.17 |
---|---|
[web sever 구축_파이선_DJANGO #5 vote.git 투표결과 동적으로 나타내기 (0) | 2017.09.17 |
[web sever 구축_파이선_DJANGO #3 ] Django WEB 배포하기 (0) | 2017.09.11 |
[web sever 구축_파이선_DJANGO #2 ] 버전/백업관리를 위한 GIT 활용 (0) | 2017.09.11 |
[web sever 구축_파이선_DJANGO #1]Django로 웹 사이트 구축하기 (1) | 2017.09.10 |
[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 |
[web sever 구축_파이선_DJANGO #2 ] 버전/백업관리를 위한 GIT 활용
[web sever 구축_파이선_DJANGO #2 ] 버전/백업관리를 위한 GIT 활용
글의순서는 아래와 같습니다.
==========================================
1. GIT에 등록하기(commit)
2. GITHUB 원격저장소 만들기
3. GITHUB 원격저장소에 git 에 commit 되어있는 file을 원격 저장하기]
4. 참고자료
https://opentutorials.org/course/1492
https://programmers.co.kr/learn/courses/6
http://hackersstudy.tistory.com/41
==========================================
[GIT에 등록하기]
SOURCETREE 설치하기
- 그래픽환경의 GIT 프로그램
GIT 저장소 만들기
- FILE ==>CLONE,NEW... ==> Create new respository
- type : git
- destination path : 노트북에 프로젝트 폴더를 만든다
GIT 저장소에 화일 저장하기
- 웹프로그램 화일을 프로젝트 폴더에 넣는다.
- unstaged 상태인 화일을 선택해서, staged 상태로 만들고, commit을 한다
- commit과 동시에 버전관리가 시작된다
편집기(atom)에 프로젝트 폴더 등록하기
- add project folder
- atom에서 작업하는 내용은 git 프로젝트에 실시간으로 동기화 된다.
[GITHUB 원격저장소 만들기]
GITHUB 계정을 만든다
NEW rapositiry
- rapagitory name 지정
- public
- create rapository
NEW rapositiry 접근 주소 확인 (http용)...............A
[GITHUB 원격저장소에 git 에 commit 되어있는 file을 원격 저장하기]
git 프로그램(sourcetree)으로 이동해서
rapository => add remote ==> url/path 지정(글의 A 주소 지정) =>Remote name 지정 ( 최초시 origial 선택) ==>ok
sourcetree 좌측 메뉴에 remote 부분에 origin 등록된건 확인
llocal 저장소의 화일을 원격저장소로 옮기기 위해
- push 버튼 실행
github 화면으로 화서 화면 refresh를 하면, 화일이 저장되어있는것을 확인
[ 참고자료 ]
'프로젝트 > Web Server 구축' 카테고리의 다른 글
[web sever 구축_파이선_DJANGO #4 ]pythonanywhere에 투표 Django WEB 배포하기 (0) | 2017.09.15 |
---|---|
[web sever 구축_파이선_DJANGO #3 ] Django WEB 배포하기 (0) | 2017.09.11 |
[web sever 구축_파이선_DJANGO #1]Django로 웹 사이트 구축하기 (1) | 2017.09.10 |
IOT(사물인터넷) 웹 서비스 구축하기( github에 웹서버 적용) #5 (0) | 2017.07.23 |
IOT(사물인터넷) 웹 서비스 구축하기(WordPress 적용) #4 (0) | 2017.06.18 |