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

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

ここまでの構築手順

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

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

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

  1. INSTALLED_APPS = (
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'phrase'
  9. )

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

  1. # -*-coding:utf-8 -*-
  2. from django.http import HttpResponse
  3. from django.template import RequestContext, loader
  4. import logging
  5.  
  6. logger = logging.getLogger(__name__)
  7.  
  8. def home(request):
  9. t = loader.get_template('phrase.html')
  10. c = RequestContext(request, {})
  11. return HttpResponse(t.render(c))

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

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Phrase</title>
  6. </head>
  7. <body>
  8. Hello Phrase Application!
  9. </body>
  10. </html>

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

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

  1. from django.conf.urls import patterns, include, url
  2. from django.contrib import admin
  3.  
  4. urlpatterns = patterns('',
  5. # Examples:
  6. # url(r'^$', 'phrase.views.home', name='home'),
  7. # url(r'^blog/', include('blog.urls')),
  8. url(r'^$','phrase.views.home',name='home'),
  9. url(r'^admin/', include(admin.site.urls)),
  10. )

1.5 構成

このような構成になる

myapp05

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

myapp01

OK!

1.6 コミット

変更点をコミットする

myapp02

2.デプロイ

2.1 virtualenv 環境を起動する

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

も、エラー

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

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

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

OK!

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

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

2.2 pushする

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

  1. (virtualenv)[piroto@localhost ~]$ cd ~/workspace_venv_phrase/phrase/
  2. (virtualenv)[piroto@localhost phrase]$ ls -a
  3. . .ebextensions .git .project .settings phrase
  4. .. .elasticbeanstalk .gitignore .pydevproject manage.py requirements.txt
  5.  
  6. (virtualenv)[piroto@localhost phrase]$ git aws.push
  7. Updating the AWS Elastic Beanstalk environment phrase-env...
  8. Environment update initiated successfully.

myapp03

更新完了

2.3 確認

起動確認。

myapp04

OK!


Follow me!

コメントを残す

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