Amazon

2010年12月24日金曜日

PythonとDjangoのセットアップ

昨日色々とWebアプリケーションフレームワークと開発言語を調べていて、世界的利用者の数の多さと可読性の観点からPythonを使おうと決めた。そして、PythonのWebアプリケーションフレームワークとしてメジャーなDjangoを早速入れてみる。

ひとまずWindows環境に入れてみよう。参考にするサイトはこちら
Pythonのバージョンは2.7.1とし、Djangoのバージョンは1.2.4

1. Pythonのダウンロード&インストール
2.7.1のmsiをダウンロードしてきて、インストール。インストール先はC:\Python2.7
マイコンピュータ右クリック->プロパティ->詳細設定->環境変数
システム環境変数のpathに
C:\Python2.7:C:\Python27\Tools\Scripts
を追加

2. Djangoのダウンロード&インストール
1.2.4のtar.gzをダウンロードしてきて、解凍。
コマンドプロンプトから解凍したフォルダに移動し、
python setup.py install
でインストール開始。その後、

  • C:¥Python27¥Lib¥site-packages
  • C:¥Python27¥Scripts¥django-admin.py
がコピーされる。


3. Projectの作成
適当にフォルダを作成C:\DjangoSample
> django-admin.py startproject ecsite
とするも、django-admin.pyが見つからないと怒られる。
先ほど環境変数に設定したのは"C:\Python27\Tools\Scripts"であり、django-admin.pyのある"C:\Python27\Scripts"ではないから、そりゃ見つからないわな。
ということで環境変数pathに"C:\Python27\Scripts"を追加し、コマンドプロンプトを再起動
もう一度C:\DjangoSampleにて
> django-admin.py startproject ecsite
を実行すると見事__init__.py, manage.py, settings.py, urls.pyの4つのファイルが生成される


4. アプリケーションサーバーの実行
ecsiteフォルダに移動し、
>C:\DjangoSample\ecsite>manage.py runserver

を実行すると
>Validating models...
>0 errors found
>
>Django version 1.2.4, using settings 'ecsite.settings'
>Development server is running at http://127.0.0.1:8000/
で待機状態になるので、ブラウザでhttp://127.0.0.1:8000/にアクセスすると
> [24/Dec/2010 16:50:40] "GET / HTTP/1.1" 200 2051
となり、ブラウザでも"It Worked!"というページが表示されれば無事成功。


5. sql作成
settings.pyファイルを開き、DATABASESのENGINEをsqlite3に変更し、Nameをフルパスで指定。TIME_ZONEをAsia/Tokyoにし、LANGUAGE_CODEをjaにする。

DATABASES = {
    'default': {
        'ENGINE': 'sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'C:\\DjangoSample\\ecsite\\ecsite.sqlite',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # 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.
    }
}


TIME_ZONE = 'Asia/Tokyo'


LANGUAGE_CODE = 'ja'




その後
> manage.py syncdb
コマンドでDBを初期化。
初めて作成するとスーパーユーザーがいないから作成するかと聞かれるのでyesとし、名前とメールアドレスとパスワードを入力する。

C:\DjangoSample\ecsite>manage.py syncdb
>Creating table auth_permission
>Creating table auth_group_permissions
>Creating table auth_group
>Creating table auth_user_user_permissions
>Creating table auth_user_groups
>Creating table auth_user
>Creating table auth_message
>Creating table django_content_type
>Creating table django_session
>Creating table django_site
>
>You just installed Django's auth system, which means you don't have any superusers defined.
>Would you like to create one now? (yes/no): yes
>Username (Leave blank to use 'administrator'): admin
>E-mail address: admin@gyk.com
>Password: 
>Password (again): 
>Superuser created successfully.
>Installing index for auth.Permission model
>Installing index for auth.Group_permissions model
>Installing index for auth.User_user_permissions model
>Installing index for auth.User_groups model
>Installing index for auth.Message model
>No fixtures found.


6.sqlite3のインストール
SQLiteのサイトからsqlite-shell-win32-x86-3070400.zipをダウンロードして解凍し、sqlite3.exeをC:\sqlite3フォルダに移動させてこのパスを環境変数に追加
> manage.py dbshell
でsqliteの対話モードに入ったら、SELECT文などでテーブルに格納されているデータやテーブルの構造なども含むデータベースに関する情報をSQL文の形式で一度出力してみる。これをダンプという。
sqlite>.dump


7. アプリケーションの作成
プロジェクトフォルダにてコマンドプロンプトから
> manage.py startapp itempage
にて、__init__.py, models.py, tests.py, views.pyが作成される
続いてDjangoにアプリケーションを認識させるためにsettings.pyのINSTALLED_APPSの項目に作成したアプリケーション名(ecsite.itempage)を追加する

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'ecsite.itempage'
)


8. モデルの作成
「モデルは基本的にデータベースの1テーブルと対応し、フィールドはDBテーブルの1カラムにマッピング」
実際に作成するモデルはmodels.pyに記述する。記述内容は参考サイトのまんま


9. モデルをHTMLに表示
テンプレートを作成するフォルダを適当に作成し(C:\DjangoSample\templates)、settings.pyのTEMPLATE_DIRSに記述。
実際のテンプレートとなるitem.htmlはpage/item.htmlに配置。
URLディスパッチャをurls.pyに定義。URLディスパッチャで定義したメソッドをビュー関数views.pyに記述。


以上、簡単なお買い物ECサイト構築。
確かに簡単に作れる気がする。pythonをもっと勉強しなければいけないけれども。






0 件のコメント:

コメントを投稿

Amazon3