<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>Tatsuya Blog &#187; GAE/P</title>
	<atom:link href="http://fukata.org/tag/gaep/feed/" rel="self" type="application/rss+xml" />
	<link>http://fukata.org</link>
	<description>ニートになりたいプログラマ</description>
	<lastBuildDate>Thu, 02 Sep 2010 04:47:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/tag/gaep/feed/" />
		<item>
		<title>[GAE/P]独自のValidationManagerを作ってみました</title>
		<link>http://fukata.org/2009/11/25/gae-p-validationmanager/</link>
		<comments>http://fukata.org/2009/11/25/gae-p-validationmanager/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 02:56:35 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1887</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>GAEでアプリを作成していて、入力値への検証機構が貧弱だと思ったので、作りました。今回作成したのは、検証情報をyamlに記述し、その検証情報に沿ってモデルのプロパティを走査していくという物です。
検証情報yamlの記述方法、使い方ともにSymfonyのValidationManagerに酷似していると思います。なので、Symfonyを使ったことがある人であれば、なんとなくわかりやすいかもしれません。と言っても、SymfonyのValidationManagerほどまだ細部までエラーチェックなどをしていないので、検証情報yamlの記述によっては、予期しないエラーが発生すると思います。ですので、この辺は、もう少しリファクタリングをしないといけないかと思います。
Pythonによるリフレクション部分だったりdb.Modelの扱い方がもし間違っていたら是非教えてください。
今回、関係するソースは下記に載せておきます。
■検証情報yaml

1
2
3
validate:
  name:
    - validator: RequiredValidator

■ValidationManager

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class ValidationManager&#40;object&#41;:
    VALIDATOR_PACKAGES = &#91;
                          'org.fukata.mapshare.system.utils.validation.common.',
              [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/11/25/gae-p-validationmanager/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/11/25/gae-p-validationmanager/" />
	</item>
		<item>
		<title>[GAE/P]db.ModelのValidtionを任意のタイミングで行えるように変更</title>
		<link>http://fukata.org/2009/11/12/gaepdb-model%e3%81%aevalidtion%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0%e3%81%a7%e8%a1%8c%e3%81%88%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab/</link>
		<comments>http://fukata.org/2009/11/12/gaepdb-model%e3%81%aevalidtion%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0%e3%81%a7%e8%a1%8c%e3%81%88%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 02:06:06 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[db.Model]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1846</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>GAE の Model の バリデーションの動作を変えてみた &#8211; 幸せプールさんの記事を元に任意のタイミングでvalidationが行えるようにしました。まだ、コードが参照元のソースをコピっただけなので、、自 [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/11/12/gaepdb-model%e3%81%aevalidtion%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0%e3%81%a7%e8%a1%8c%e3%81%88%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/11/12/gaepdb-model%e3%81%aevalidtion%e3%82%92%e4%bb%bb%e6%84%8f%e3%81%ae%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0%e3%81%a7%e8%a1%8c%e3%81%88%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab/" />
	</item>
		<item>
		<title>[GAE/P]国際化に対応してみました　〜その３〜</title>
		<link>http://fukata.org/2009/11/05/gae-p-internationalization-3/</link>
		<comments>http://fukata.org/2009/11/05/gae-p-internationalization-3/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 15:34:51 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1834</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>前回に引き続き国際化についてです。
前の記事で書いていた「Environment variable DJANGO_SETTINGS_MODULE is undefined.」のエラーについてですが、あの記事を書いた後も何 [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/11/05/gae-p-internationalization-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/11/05/gae-p-internationalization-3/" />
	</item>
		<item>
		<title>[GAE/P]国際化に対応してみました　〜その２〜</title>
		<link>http://fukata.org/2009/11/02/gae-p-internationalization-2/</link>
		<comments>http://fukata.org/2009/11/02/gae-p-internationalization-2/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 16:24:06 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1830</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>前の記事でGAE/Pの標準環境にて国際化に対応した際の記事を書いたのですが、実際にGAE上にデプロイして動かしてみると何点かエラーが出たので、追加したいと思います。
■UnicodeDecodeErrorの発生
実際にア [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/11/02/gae-p-internationalization-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/11/02/gae-p-internationalization-2/" />
	</item>
		<item>
		<title>[GAE/P]国際化に対応してみました　〜その１〜</title>
		<link>http://fukata.org/2009/11/01/gae-p-internationalization-1/</link>
		<comments>http://fukata.org/2009/11/01/gae-p-internationalization-1/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 13:44:20 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1823</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>現在、GAE/P環境にて作成しているアプリの国際化を対応してみました。Django-1.0やKayといったFWを使って国際化も対応できるようですが、今更変更するのもだるかったので、標準の環境で対応しました。
多分、次に作成するなら、標準の環境ではなく、他のFWを試すかもしれません。
とまぁ、自分のことは置いといて早速、国際化の手順を書いていきたいと思います。まずは、最終的な構成を書きます。

.
`-- src
    &#124;-- app.yaml
    &#124;-- conf
    &#124;   &#124;-- locale
    &#124;   &#124;   &#124;-- en
    &#124;   &#124;   &#124;   `-- LC_MESSAGES
    &#124;   &#124;   &#124; [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/11/01/gae-p-internationalization-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/11/01/gae-p-internationalization-1/" />
	</item>
		<item>
		<title>[GAE/P]必須カラムの登録について</title>
		<link>http://fukata.org/2009/10/29/gae-p-required-column/</link>
		<comments>http://fukata.org/2009/10/29/gae-p-required-column/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 19:36:11 +0000</pubDate>
		<dc:creator>深田 達也(Tatsuya Fukata)</dc:creator>
				<category><![CDATA[PG]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[GAE/P]]></category>

		<guid isPermaLink="false">http://fukata.org/?p=1817</guid>
		<description><![CDATA[<img src="http://fukata.org/share_img/cat_icon/python-32.png" width="32" height="32" alt="" title="Python" /><br/>最近、GAE for Pythonでアプリを作っているのですが、必須カラムの値がうまく登録できなかった問題が解決したので、メモとして残しておきたいと思います。
■A.py

1
2
class A&#40;db.Mode [...]]]></description>
		<wfw:commentRss>http://fukata.org/2009/10/29/gae-p-required-column/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://fukata.org/2009/10/29/gae-p-required-column/" />
	</item>
	</channel>
</rss>
