Google App Engineのサイト構築にDjangoフレームワークを利用する方法
詳細はここに書かれている
とりあえず、ヘルパーをダウンロードしてきて、後はデータストア周り以外は普通にDjangoでプログラムを書けばよいみたい?
2011年10月30日日曜日
2011年5月21日土曜日
Djangoのデータベースアクセス(その3)
テーブルのデータを取得する方法
1.データを取得する関数の作成
sampleprj/sampleapp/views.pyにshowという関数を作成し、次のようなコードを書く
2.URL割り当て
show関数を割り当てるURLを定義する
sampleprj/urls.pyの最後に次のコードを追加する
これでhttp://localhost:8000/sampleapp/show/にアクセスすると、コンソールにMemoテーブル内の全てのデータが表示される
参考サイト:
・クエリを生成する
1.データを取得する関数の作成
sampleprj/sampleapp/views.pyにshowという関数を作成し、次のようなコードを書く
# encoding: utf-8
from django.http import HttpResponse
from sampleprj.sampleapp.models import Memo
def show(request):
memos = Memo.objects.all()
for memo in memos:
print memo.userid
print memo.title
print memo.content
return HttpResponse('データを取得しました')
2.URL割り当て
show関数を割り当てるURLを定義する
sampleprj/urls.pyの最後に次のコードを追加する
urlpatterns += patterns('sampleprj.sampleapp',
url(r'^sampleapp/show/$', 'show'),
)
これでhttp://localhost:8000/sampleapp/show/にアクセスすると、コンソールにMemoテーブル内の全てのデータが表示される
参考サイト:
・クエリを生成する
2011年5月14日土曜日
Djangoのデータベースアクセス(その2)
新規データを追加する方法
ユーザが、http://localhost:8000/sampleapp/add/にアクセスした時に、前回作成したテーブルに新規にデータを追加する手順
1.アクセスする関数の作成
sampleprj/sampleapp/views.pyにaddという関数を作成し、次のようなコードを書く
2.URL割り当て
add関数を割り当てるURLを定義する
sampleprj/urls.pyの最後に次のコードを追加する
これでhttp://localhost:8000/sampleapp/add/にアクセスするとテーブルに追加される。
ユーザが、http://localhost:8000/sampleapp/add/にアクセスした時に、前回作成したテーブルに新規にデータを追加する手順
1.アクセスする関数の作成
sampleprj/sampleapp/views.pyにaddという関数を作成し、次のようなコードを書く
# encoding: utf-8
from django.http import HttpResponse
from sampleprj.sampleapp.models import Memo
def add(request):
memo = Memo()
memo.userid = 1
memo.title = 'first memo'
memo.content = 'memo content'
return HttpResponse('データを追加しました')
2.URL割り当て
add関数を割り当てるURLを定義する
sampleprj/urls.pyの最後に次のコードを追加する
urlpatterns += patterns('sampleprj.sampleapp',
url(r'^sampleapp/add/$', 'add'),
)
これでhttp://localhost:8000/sampleapp/add/にアクセスするとテーブルに追加される。
2011年5月7日土曜日
Djangoのデータベースアクセス(その1)
Djangoでデータベースへアクセスするためによく使う記述法のメモ
ここでは、まずテーブルを作成するまでの手順
次の例を利用する
プロジェクト名:sampleprj
アプリケーション名:sampleapp
テーブル名:Memo
データベースへのテーブル作成手順
1.モデルを定義
「sampleprj/sampleapp/models.py」に次のテーブル構成を追加
・userid:ユーザID、整数型
・title:タイトル、文字列型、最大100文字まで
・content:内容、文字列型、最大255文字まで
・created_date:作成日時、日時型、作成日時を自動設定
・updated_date:更新日時、日時型、更新日時を自動設定
models.py編集後に「# python manage.py syncdb」を実行することで、sampleapp_Memoというテーブルが作成される
参考サイト
・モデルフィールドリファレンス
ここでは、まずテーブルを作成するまでの手順
次の例を利用する
プロジェクト名:sampleprj
アプリケーション名:sampleapp
テーブル名:Memo
データベースへのテーブル作成手順
1.モデルを定義
「sampleprj/sampleapp/models.py」に次のテーブル構成を追加
from django.db import models
class Memo(models.Model):
userid = models.IntegerField()
title = models.CharField(max_length=100)
content = models.CharField(max_length=255)
created_date = models.DateTimeField(auto_now_add=True)
updated_date = models.DateTimeField(auto_now=True)
テーブルの構成は、次の通り・userid:ユーザID、整数型
・title:タイトル、文字列型、最大100文字まで
・content:内容、文字列型、最大255文字まで
・created_date:作成日時、日時型、作成日時を自動設定
・updated_date:更新日時、日時型、更新日時を自動設定
models.py編集後に「# python manage.py syncdb」を実行することで、sampleapp_Memoというテーブルが作成される
参考サイト
・モデルフィールドリファレンス
2011年5月4日水曜日
Djangoエラー:Non-ASCII character views.py, but no encoding declared
エラー内容
・ページにアクセスしたときに、「Non-ASCII character '\xe3' in file views.py on line 9, but no encoding declared;」というエラーが発生し、アクセスできない
原因
・日本語をファイル内で利用したが、文字コードを宣言しなかった
対処法
・日本語を利用したファイルの1行目に次のエンコーディング宣言を追加
・ページにアクセスしたときに、「Non-ASCII character '\xe3' in file views.py on line 9, but no encoding declared;」というエラーが発生し、アクセスできない
原因
・日本語をファイル内で利用したが、文字コードを宣言しなかった
対処法
・日本語を利用したファイルの1行目に次のエンコーディング宣言を追加
# encoding: UTF-8
2011年5月2日月曜日
Djangoエラー:CSRF verification failed. Request aborted.
エラー内容
・djangoで、フォームに入力した内容をPOSTしたときに、「CSRF verification failed. Request aborted.」というエラー
対処法
・「(プロジェクトフォルダ)/settings.py」のMIDLEWARE_CLASSES内に次の1行を追加
エラー画面
・djangoで、フォームに入力した内容をPOSTしたときに、「CSRF verification failed. Request aborted.」というエラー
対処法
・「(プロジェクトフォルダ)/settings.py」のMIDLEWARE_CLASSES内に次の1行を追加
'django.middleware.csrf.CsrfResponseMiddleware',
エラー画面
テンプレートからHTMLを読み込む手順
djangoでテンプレートからHTMLを読み込む手順
テンプレートディレクトリを追加
・「(プロジェクトディレクトリ)/settings.py」にあるTEMPLATE_DIRS = ()の中にディレクトリのパスを追加する
テンプレートHTMLファイルを追加
・設定したテンプレートディレクトリ内に読み込むためのHTMLファイルを作成
例えば、'/home/project/templates/sampleapp/index.htmlを追加
views側でテンプレートを読み込む
・テンプレートを表示したいアプリケーションのviews.pyにテンプレートを読み込むコードを挿入する
URLを設定
・「(プロジェクトディレクトリ)/urls.py」にviewを登録する
・urlpatterns = ('',)を次のように編集
読み込みを確認
# python manage.py runserverを実行して、ブラウザでhttp://localhost:8000/sampleapp/にアクセスして表示されることを確認
参考サイト:テンプレートの利用方法
テンプレートディレクトリを追加
・「(プロジェクトディレクトリ)/settings.py」にあるTEMPLATE_DIRS = ()の中にディレクトリのパスを追加する
# 追加するディレクトリ:/home/project/templates TEMPLATE_DIRS = ( '/home/project/templates', )
テンプレートHTMLファイルを追加
・設定したテンプレートディレクトリ内に読み込むためのHTMLファイルを作成
例えば、'/home/project/templates/sampleapp/index.htmlを追加
views側でテンプレートを読み込む
・テンプレートを表示したいアプリケーションのviews.pyにテンプレートを読み込むコードを挿入する
# 追加するアプリケーションが'/home/project/sampleapp'の場合、
# '/home/project/sampleapp/views.py'に次を追加
from django.http import HttpResponse
from django.template import Context, loader
def index(request):
template = loader.get_template('sampleapp/index.html')
return HttpResponse(template.render(Context()))
URLを設定
・「(プロジェクトディレクトリ)/urls.py」にviewを登録する
・urlpatterns = ('',)を次のように編集
urlpatterns = ('',
url(r'^sampleapp/$', 'project.sampleapp.views.index'),
)
読み込みを確認
# python manage.py runserverを実行して、ブラウザでhttp://localhost:8000/sampleapp/にアクセスして表示されることを確認
参考サイト:テンプレートの利用方法
2011年4月20日水曜日
macのeclipseでdjangoフレームワークを利用した開発環境構築
必要なもの
1. ダウンロードしたeclipseを解凍
Django環境を構築
0. python 2.7.1をインストール(必要な場合)
0. python 2.7.1をインストール(必要な場合)
1. ターミナルを起動してDjango-1.3.tar.gzを解凍
2. ターミナルでDjango-1.3のフォルダへ移動し、「python setup.py install」と打ってreturnキーを押すとPythonライブラリのsite-packagesフォルダ以下にdjangoがインストールされる
Python環境をeclipseにインストール手順
1. ダウンロードしたeclipseを解凍
2. eclipseを起動して、「Help > Install New Software...」を選択
3. Work with:の横にある「Add...」ボタンを押す
4. ポップアップしたAdd Repositoryウィンドウで、NameにPyDev、Locationにhttp://pydev.org/updatesと入力して「OK」ボタンを押す
5. Work with:にPyDevが選択されていることを確認し、表示された項目のうち「PyDev」を選択
6. 流れにそってNextを押す
7. インストール中に、証明書が不明だと言われるが信頼してインストールを続ける
8. eclipseを再起動
9. eclipse > 環境設定を起動
10. Pydev > Interpreter - Pythonを選択
11. Python InterpretersでAuto configボタンを押すと自動で設定される
12. Pythonライブラリパスとして、sys.pathに登録されているパスのリストが表示されるので選択しておく
7. インストール中に、証明書が不明だと言われるが信頼してインストールを続ける
8. eclipseを再起動
9. eclipse > 環境設定を起動
10. Pydev > Interpreter - Pythonを選択
11. Python InterpretersでAuto configボタンを押すと自動で設定される
12. Pythonライブラリパスとして、sys.pathに登録されているパスのリストが表示されるので選択しておく
django 1.3リリース
djangoがバージョン1.3をリリース:http://www.djangoproject.com/
変更点:リリースノート
変更点:リリースノート
- 新機能:new futures
- バグ修正
- 既存機能の改善
- 前方非互換な改善:backwords-imcompatible changes
詳細は次回以降
2010年5月4日火曜日
apacheサーバへのdjangoプロジェクト設置
Ubuntu 10.04上で動作するApache2にdjangoで作成したWebサイトを設置する手順
必要なモジュールのインストールについてはこちら
前準備
プロジェクト
・プロジェクト名:djprj
・パス:/var/www/djprj
プロジェクト内アプリケーション
・アプリケーション名:djapp
・パス:/var/www/djprj/djapp
設定手順
1.設定ファイルのコピー
# sudo /etc/apache2/sites-enabled/default /etc/apache2/sites-enabled/default100504
2.設定ファイル(default100504)に次の内容を追加
追加場所は、「ErrorLog ・・・」の直前
SetHandler python-programPythonHandler django.core.handlers.modpythonSetEnv DJANGO_SETTINGS_MODULE mysite.settingsPythonOption django.root /djprjPythonDebug OnPythonPath "['/var/www/djprj/djapp/', '/var/www/'] + sys.path"
3.読み込む設定ファイルの変更
# sudo a2dissite default
# sudo a2ensite default100504
4.Apache2の再起動
# sudo /etc/init.d/apache2 restart
参考サイト
2010年5月2日日曜日
Djangoの開発環境
Pythonのフレームワークの一つであるDjangoを用いてWebサイトの作成を開始するが、
なかなか、適切な開発環境(IDE)がない
eclipseやNetBeansを用いても、Pythonのコード自体は書くことができるが、
django-admin.pyのコマンドの実行やデータベースのSyncは、
コンソールから行わなければならない
現状では、NetBeans+コンソールか、emacs+コンソールで作成していくが、
いずれは全てを簡単にWebサイトを作成するフレームワーク実装環境を作成するつもり
登録:
投稿 (Atom)
