AWS Elastic Beanstalk Django アプリケーション環境を CentOS6.5 上に PyDevを使って構築する(5) アプリケーションの作成

チュートリアルにある、コマンドを動かす箇所(ローカルコンピュータで、createadmin.py という名前のファイルを作成し、最上位ディレクトリ(/root/mysite/)の scripts という名前のディレクトリに保存します のくだり)はなかなか難関(?)なので、先送りにして、アプリケーションを作成してみる。

ここまでの構築手順

1.アプリケーションの編集

1.1 settings.py で アプリケーションを有効にする

INSTALL_APPS に自アプリケーション(例では”phrase”)を追加する。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'phrase'
)

1.2 リクエストを受け付ける処理(home)を phrase/views.py に作成する

# -*-coding:utf-8 -*-
from django.http import HttpResponse
from django.template import RequestContext, loader
import logging

logger = logging.getLogger(__name__)

def home(request):
    t = loader.get_template('phrase.html')
    c = RequestContext(request, {})
    return HttpResponse(t.render(c))

1.3 リクエスト結果のテンプレートHTMLファイルをphrase/templates/phrase.htmlに作成する

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Phrase</title>
</head>
<body>
Hello Phrase Application!
</body>
</html>

1.4 リクエストを 上記で作成したメソッドに結びつけるよう url.py に追記

url(r’^$’,’phrase.views.home’,name=’home’) を追記

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'phrase.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^$','phrase.views.home',name='home'),
    url(r'^admin/', include(admin.site.urls)),
)

1.5 構成

このような構成になる

myapp05

1.6 ローカル環境で起動確認

myapp01

OK!

1.6 コミット

変更点をコミットする

myapp02

2.デプロイ

2.1 virtualenv 環境を起動する

[piroto@localhost ~]$ virtualenv -p python2.7 ~/virtualenv
Already using interpreter /usr/local/bin/python2.7
New python executable in /home/piroto/virtualenv/bin/python2.7
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in 
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 825, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 985, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 1277, in install_python
    shutil.copyfile(executable, py_executable)
  File "/usr/local/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 26] Text file busy: '/home/piroto/virtualenv/bin/python2.7'

も、エラー

Virtualenv環境をEclipseのインタープリタとして使っているため、ロックされているようだ。

一旦、Eclipseを終了させ、再実行

[piroto@localhost ~]$ virtualenv -p python2.7 ~/virtualenv
Already using interpreter /usr/local/bin/python2.7
New python executable in /home/piroto/virtualenv/bin/python2.7
Not overwriting existing python script /home/piroto/virtualenv/bin/python (you must use /home/piroto/virtualenv/bin/python2.7)
Installing setuptools, pip...done.
[piroto@localhost ~]$ . ~/virtualenv/bin/activate

OK!

この後、Eclipseを起動しても問題ない。

最適な手順はあらためて考えることとする。

2.2 pushする

コマンドラインから、ワークスペースのプロジェクトフォルダへ降りて、git aws.push を実施

(virtualenv)[piroto@localhost ~]$ cd ~/workspace_venv_phrase/phrase/
(virtualenv)[piroto@localhost phrase]$ ls -a
.   .ebextensions      .git        .project       .settings  phrase
..  .elasticbeanstalk  .gitignore  .pydevproject  manage.py  requirements.txt

(virtualenv)[piroto@localhost phrase]$ git aws.push
Updating the AWS Elastic Beanstalk environment phrase-env...
Environment update initiated successfully.

myapp03

更新完了

2.3 確認

起動確認。

myapp04

OK!


Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です