○Django
Amazon
2011年3月31日木曜日
2011年3月30日水曜日
GQLのLIMIT, OFFSETではバウンドパラメータは無効
2011/3/30現在:
GQLのLIMITおよびOFFSETではバウンドパラメータによる指定は無効となる。
LIMIT_MAX=3
SomeModel.gql("WHERE ID=:1 LIMIT :2", id, LIMIT_MAX)
を指定すると
Google App Engineのディスカッションでは確かにこの議論がされているが
GQLのLIMITおよびOFFSETではバウンドパラメータによる指定は無効となる。
LIMIT_MAX=3
SomeModel.gql("WHERE ID=:1 LIMIT :2", id, LIMIT_MAX)
を指定すると
Parse Error: Non-number limit in LIMIT clause at symbol :2
となる。
Google App Engineのディスカッションでは確かにこの議論がされているが
comment3:LIMIT and OFFSET don't currently support bound parameters.
ドキュメント読むあたり書いてないんだよね。。。
2011年3月29日火曜日
IEでJavaScriptの構文エラーが出たら連想配列の定義を疑ってみる
JavaScriptで連想配列を定義する際に、複数行にわたってコードを記述する時がある。
たとえば
var dictonary={
key: key1,
value: value1
}
このとき注意しなくてはならないのが、最後の要素を記述する際に","をつけてはいけないということだ。
少なくともIEでは構文エラーとなって警告が出てしまう。
これはFirefoxやChromeではエラーにならずIEで実行した時だけ警告が出るのでかえってデバッグが難しい。
それとブラウザはコンテンツをある程度キャッシュしてしまうため、直したコードのアプリケーションやサービスそのものをロードしても、読み込むJavaScriptまでロードしてくれるとは限らない。これまた厄介。URLをもう一度叩いて、さらにF5でリロードする。くらいかなぁ。。。
たとえば
var dictonary={
key: key1,
value: value1
}
このとき注意しなくてはならないのが、最後の要素を記述する際に","をつけてはいけないということだ。
少なくともIEでは構文エラーとなって警告が出てしまう。
これはFirefoxやChromeではエラーにならずIEで実行した時だけ警告が出るのでかえってデバッグが難しい。
それとブラウザはコンテンツをある程度キャッシュしてしまうため、直したコードのアプリケーションやサービスそのものをロードしても、読み込むJavaScriptまでロードしてくれるとは限らない。これまた厄介。URLをもう一度叩いて、さらにF5でリロードする。くらいかなぁ。。。
ラベル:
デバッグ,
Chrome,
Firefox,
IE,
JavaScript
2011年3月26日土曜日
GAEでDirectoryIndexを指定する
例えば、http://www.hogehoge.com/にアクセスすると実はその下にあるhttp://www.hogehoge.com/index.htmlやindex.phpに自動でアクセスするようにすることをDirectoryIndexというらしい。(Apache的に?)
これをApacheのWebサーバーで実現する際には.htaccessファイルにDirectoryIndexという設定項目を記述する。
-----以下こちらより引用
DirectoryIndex index.html index.cgi index.php index.shtml
と書くと、「/(スラッシュ)」止めのURLでアクセスされた場合に表示させるファイル名の優先順位を指定できます。つまり、上のような設定をしている場 合は、index.htmlがそのディレクトリー内にあれば、「/(スラッシュ)」止めのURLでのアクセス時にindex.htmlのコンテンツが表示 されますが(http://www.example.comでアクセスしてもhttp://www.example.com/index.htmlでアクセスしても同一のコンテンツが表示されるということ)、index.htmlが無ければindex.cgiを探しに行き、さらに、それが無ければ、index.phpをと見ていきます。列挙されているファイル名全て見て、どれも存在しなかった場合で、かつ、「Options Indexes」がonに設定されている場合は、そのディレクトリー内のファイル一覧が表示されますので、注意が必要です。「Options Indexes」をonにする場合の危険性については、こちらでも説明していますので、参照してください。
-----
で、同じことをGAEで実現しようとすると「.htaccessはどこにあるんだ?」となる。
少なくともユーザーは.htaccessファイルは触れないので代わりの方法としてapp.yamlに擬似的に記述する。以下がその記述。
app.yamlの記述詳細はGAEドキュメントに譲るとして
------- app.yamlの一部
handlers:
- url: /
static_files: htdocs/index.html
upload: /
- url: /
static_dir: htdocs
-------
この記述がhttp://hogehoge.appspot.com/というアプリケーションのものだとすると、
ユーザーがhttp://hogehoge.appspot.com/にアクセスすると実際はhttp://hogehoge.appspot.com/static/index.htmlに自動転送される。このファイルは別にindex.htmlでなくても良い
これをApacheのWebサーバーで実現する際には.htaccessファイルにDirectoryIndexという設定項目を記述する。
-----以下こちらより引用
DirectoryIndex index.html index.cgi index.php index.shtml

と書くと、「/(スラッシュ)」止めのURLでアクセスされた場合に表示させるファイル名の優先順位を指定できます。つまり、上のような設定をしている場 合は、index.htmlがそのディレクトリー内にあれば、「/(スラッシュ)」止めのURLでのアクセス時にindex.htmlのコンテンツが表示 されますが(http://www.example.comでアクセスしてもhttp://www.example.com/index.htmlでアクセスしても同一のコンテンツが表示されるということ)、index.htmlが無ければindex.cgiを探しに行き、さらに、それが無ければ、index.phpをと見ていきます。列挙されているファイル名全て見て、どれも存在しなかった場合で、かつ、「Options Indexes」がonに設定されている場合は、そのディレクトリー内のファイル一覧が表示されますので、注意が必要です。「Options Indexes」をonにする場合の危険性については、こちらでも説明していますので、参照してください。
-----
で、同じことをGAEで実現しようとすると「.htaccessはどこにあるんだ?」となる。
少なくともユーザーは.htaccessファイルは触れないので代わりの方法としてapp.yamlに擬似的に記述する。以下がその記述。
app.yamlの記述詳細はGAEドキュメントに譲るとして
------- app.yamlの一部
handlers:
- url: /
static_files: htdocs/index.html
upload: /
- url: /
static_dir: htdocs
-------
この記述がhttp://hogehoge.appspot.com/というアプリケーションのものだとすると、
ユーザーがhttp://hogehoge.appspot.com/にアクセスすると実際はhttp://hogehoge.appspot.com/static/index.htmlに自動転送される。このファイルは別にindex.htmlでなくても良い
ラベル:
app.yaml,
DirectoryIndex,
GAE
登録:
投稿 (Atom)