アリ雲+django実戦記録
13458 ワード
2013年7月13日10:36:53:前回に続き、baeの配備djangoが成功せず、阿里雲に転戦しました.
アリクラウドサーバーは一番安い69/月です.今はイベントがあります.新しいユーザーは20元の現金券を送ります.RMB 49を使って一つ買いました.オペレーティングシステムはuuntu 1204のセキュリティ強化版を選んでいます.
1.puttyはリモートホストに登録します.
puttyダウンロード住所:http://the.earth.li/~sgtatham/putty/latest/x 86/putty.zip、解凍後直接putty.exeを実行すればいいです.
2.Xftpとリモートホストはファイルを転送します.
Xftpダウンロードアドレスhttp://www.onlinedown.net/soft/143.htm
上記の二段階はaliyunのヘルプ文書を見ればいいです.easy、http://help.aliyun.com/manual?spm=0.0.0.0.ZERNiU&helpId=1846
3.apache+mysql+python+djangoをインストールします.
mysqlを管理してphpmyadminを使って、このように更にphpを詰めなければならなくて、次のように命令します.
pythonシステムは持参しました.python-mysqldbをインストールしたいです.
djangoは公式サイトからダウンロードして、現在ダウンロードしているバージョンは1.5.1です.公式サイトの説明に従ってインストールします.
Appache 2を再起動するコマンド:
srvディレクトリに切り替えて、djangoサイトを起動します.
5.次はアプリの配置です.
django公式文書はどのように配置されていますか?wsgi公式サイトにもどのように配置された文書がありますか?主な点はmod_ですwsgiには2つの作業モードがあり、Aacheとスレッドの守護モードとして組み込まれています.公式推奨は守護モードで、守護モードは研究されていません.埋め込みモードが一番簡単で、先に埋め込みモードを使います.
Appacheのプロファイルを編集します.
ポイントは元の書類をもとにして増加したことです.
この時、ブラウザを通じてあなたのクラウドサーバーのホストアドレスxx:xx:xx/ap/にアクセスしたら、djangoのデフォルトページが見えます.
6.データベースに接続する
myste/settings.pyを編集し、DATABASESの項目を修正します.
djangoではデフォルトでインストールされているアプリケーションがあります.
7.アプリ+モデルを作成する
次のコマンドを入力して、pollsというアプリケーションを作成します.
この意味で二つのモデルが作られました.Poll、Choice.unicode_u u方法はモデルのデフォルト表示を定義するものです.
モデルをアクティブにして、myste/settings.pyのINSTALLED_を編集します.APPは以下の通りです
たとえば:
8.設定url+ビューの作成
myste/urls.pyを編集します.
9.adminアプリケーションを開く
まずsettings.pyを編集し、adminアプリケーションを開きます.
データベースを同期
myste/urls.pyを編集して、adminのビューを開きます.
ブラウザで試してみます.xx:xx:xx/admin、ここでadminインターフェースがあります.
注:ここでは、polls/urls.pyを削除し、リンクをmyste/urls.pyというファイルにまとめて配布することを提案しています.原因は、過程の中でいくつかの言い表せない問題に出会って、1つのファイルの中でOKに置いて、この問題は残します.
私たちが先ほど作成したモデルをadminに登録します.
polls/の下にadmin.pyを新たに作成し、その内容を編集すれば次のとおりです.
アリクラウドサーバーは一番安い69/月です.今はイベントがあります.新しいユーザーは20元の現金券を送ります.RMB 49を使って一つ買いました.オペレーティングシステムはuuntu 1204のセキュリティ強化版を選んでいます.
1.puttyはリモートホストに登録します.
puttyダウンロード住所:http://the.earth.li/~sgtatham/putty/latest/x 86/putty.zip、解凍後直接putty.exeを実行すればいいです.
2.Xftpとリモートホストはファイルを転送します.
Xftpダウンロードアドレスhttp://www.onlinedown.net/soft/143.htm
上記の二段階はaliyunのヘルプ文書を見ればいいです.easy、http://help.aliyun.com/manual?spm=0.0.0.0.ZERNiU&helpId=1846
3.apache+mysql+python+djangoをインストールします.
mysqlを管理してphpmyadminを使って、このように更にphpを詰めなければならなくて、次のように命令します.
apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin
期間中はmysql rootユーザーパスワードとphpmyadminのログインパスワードを入力してください.pythonシステムは持参しました.python-mysqldbをインストールしたいです.
apt-get install python-mysqldb
mod_を取り付けますwsgiは、Pythonをアプリに展開したものです.apt-get install libapache2-mod-wsgi
リンクphpmyadminln -s /usr/share/phpmyadmin /var/www/phpmyadmin
python uuntuはすでに持っています.python-mysqldbをインストールしたいです.apt-get install python-mysqldb
djangoは公式サイトからダウンロードして、現在ダウンロードしているバージョンは1.5.1です.公式サイトの説明に従ってインストールします.
Appache 2を再起動するコマンド:
sudo /etc/init.d/apache2 restart
4.djangoサイトを起動するsrvディレクトリに切り替えて、djangoサイトを起動します.
django-admin.py startproject mysite
5.次はアプリの配置です.
django公式文書はどのように配置されていますか?wsgi公式サイトにもどのように配置された文書がありますか?主な点はmod_ですwsgiには2つの作業モードがあり、Aacheとスレッドの守護モードとして組み込まれています.公式推奨は守護モードで、守護モードは研究されていません.埋め込みモードが一番簡単で、先に埋め込みモードを使います.
Appacheのプロファイルを編集します.
gedit /etc/apache2/sites-available/default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
WSGIScriptAlias /app/ /srv/mysite/mysite/wsgi.py
<Directory /srv/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
ポイントは元の書類をもとにして増加したことです.
WSGIScriptAlias /app/ /srv/mysite/mysite/wsgi.py
<Directory /srv/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
編集/etc/apphe 2/httpd.com nfファイルもあります.次の行を追加します.WSGIPythonPath /srv/mysite
その後、apacheサービスを再開すればいいです.この時、ブラウザを通じてあなたのクラウドサーバーのホストアドレスxx:xx:xx/ap/にアクセスしたら、djangoのデフォルトページが見えます.
6.データベースに接続する
myste/settings.pyを編集し、DATABASESの項目を修正します.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'db_name', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': 'your_mysql_passwd', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
djangoではデフォルトでインストールされているアプリケーションがあります.
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
#'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
次のコマンドを実行して、データベースを同期して、デフォルトでインストールされているアプリケーションのためにテーブルを作成します.python manage.py syncdb
7.アプリ+モデルを作成する
次のコマンドを入力して、pollsというアプリケーションを作成します.
python manage.py startapp polls
次にモデルを作成します.django公式サイトの教程の例に従って、polls/models.pyを編集します.from django.db import models
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return self.question
class Choice(models.Model): poll = models.ForeignKey(Poll)
choice = models.CharField(max_length=200)
votes = models.IntegerField()
def __unicode__(self):
return self.choice
この意味で二つのモデルが作られました.Poll、Choice.unicode_u u方法はモデルのデフォルト表示を定義するものです.
モデルをアクティブにして、myste/settings.pyのINSTALLED_を編集します.APPは以下の通りです
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
データベースを同期します.python manage.py syncdb
shellの下にいくつかのpython文を入力して、モデルのために内容を作成できます.shell環境に入るコマンドは、python manage.py shell
たとえば:
>>> from polls.models import Poll, Choice # Import the model classes we just wrote.
# No polls are in the system yet.
>>> Poll.objects.all()
[]
# Create a new Poll.
>>> from django.utils import timezone
>>> p = Poll(question="What's new?", pub_date=timezone.now())
# Save the object into the database. You have to call save() explicitly.
>>> p.save()
# Now it has an ID. Note that this might say "1L" instead of "1", depending
# on which database you're using. That's no biggie; it just means your
# database backend prefers to return integers as Python long integer
# objects.
>>> p.id
1
8.設定url+ビューの作成
myste/urls.pyを編集します.
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'simple.views.home', name='home'),
# url(r'^simple/', include('simple.foo.urls')),
url(r'^polls/', include('polls.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
)
polls/urls.pyを編集します.このファイルは存在しません.新規作成します.from django.conf.urls import patterns, url
from polls import views
urlpatterns = patterns('',
url(r'^$', views.index, name='home'),
url(r'^show/$', views.show_all, name='show'),
)
views.indexビューを作成し、polls/views.pyを編集します.from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the poll index.")
この時ホスト名xx:xx:xx/app/pollsにアクセスするとハローワールドビューが見られます.9.adminアプリケーションを開く
まずsettings.pyを編集し、adminアプリケーションを開きます.
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'polls',
)
データベースを同期
python manage.py syncdb
myste/urls.pyを編集して、adminのビューを開きます.
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'simple.views.home', name='home'),
# url(r'^simple/', include('simple.foo.urls')),
url(r'^$', 'polls.views.index'),
url(r'^polls/', include('polls.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),
)
adminの静的ファイルを設定します.まず、apache 2のプロファイルを編集して、apacheに静止ファイルのサービスを提供させます.編集が終わったら、apacheを再起動する必要があります.<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
AliasMatch ^/([^/]*\.css) /srv/mysite/static/styles/$1
Alias /media/ /srv/mysite/media/
Alias /static/ /srv/mysite/static/
<Directory /srv/mysite/static>
Order deny,allow
Allow from all
</Directory>
<Directory /srv/mysite/media>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / /srv/mysite/mysite/wsgi.py
<Directory /srv/mysite/mysite/>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
srv/myste/の下にstaticとmediaフォルダを新たに作成し、django/contrib/admin/static/adminというフォルダを/srv/myste/static/下にコピーします.ブラウザで試してみます.xx:xx:xx/admin、ここでadminインターフェースがあります.
注:ここでは、polls/urls.pyを削除し、リンクをmyste/urls.pyというファイルにまとめて配布することを提案しています.原因は、過程の中でいくつかの言い表せない問題に出会って、1つのファイルの中でOKに置いて、この問題は残します.
私たちが先ほど作成したモデルをadminに登録します.
polls/の下にadmin.pyを新たに作成し、その内容を編集すれば次のとおりです.
from django.contrib import admin
from polls.models import Poll
admin.site.register(Poll)
これで本文は終わりです.アリ雲+djangoの構築は終わりました.残りはdjangoの開発作業です.