TigerベースのMacOSXでのGoogle App Engine準備
Google App Engineのお勉強で、まずはHello Worldからと初めて見たら、dev_appserver.pyを実行したらみごとにエラーが発生。
AttributeError: 'module' object has no attribute 'HTTPSHandler'
Leopardの別のmacで試したときには発生しなかったんだけど、今日使ったのは元Tiger→Leopardにアップグレード&Pythonの環境はMacPortsで作成だったのでpy25-socket-sslが入ってなかったみたい。
ということで$ sudo port install py25-socket-sslして無事起動したので一安心。参考はここ
Google App Engineについてはまたあとで書くよ。。。ということで今日書いた部分をメモとしてはっつけとく。特に説明は無いので暇で暇で仕方ない人はどうぞー。
何がしたいかとかはまだ固まってないので、またあとでー
import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.ext import db ### Friends関連のデータモデルクラス #################################### class Friends(db.Model): ### Friendsモデルに関するデータ定義 name = db.StringProperty() screen_name = db.StringProperty() create_date = db.DateTimeProperty(auto_now_add=True) ### Friendsモデルに関する処理クラス #################################### class FriendModel: def checkExists(self, screen_name): # 該当データが存在するかチェックして真偽値を返す if 0 < Friends.all().filter("screen_name", screen_name).count(): return True else: False def addFriend(self, add_name, add_screen_name): # 追加データを定義して追加処理 new_friend = Friends(name=add_name, screen_name=add_screen_name) new_friend.put() ### ページ処理 ######################################################## class PageRender(webapp.RequestHandler): def get(self): ### 改行を定義 line_break = '\r\n' ### GET パラメータを取得 r_name = self.request.get("name") r_screen_name = self.request.get("screen_name") ### レスポンスヘッダーを出力 self.response.headers['Content-Type'] = 'text/plain;charset=UTF-8' ### 受け取った名前、スクリーン名を表示 self.response.out.write('--- Get Content' + line_break) self.response.out.write('Name: ' + r_name + line_break) self.response.out.write('Screen_Name: ' + r_screen_name + line_break) ### FriendModelをnew fModel = FriendModel() ### 存在チェックを実行 # 既に存在している場合はメッセージを出力 if 0 < fModel.checkExists(r_screen_name): self.response.out.write(r_screen_name + ' is exists' + line_break) # 存在していない場合は登録処理をしてメッセージを出力 else: fModel.addFriend(r_name, r_screen_name) self.response.out.write(r_screen_name + ' add' + line_break) ### メイン処理 ######################################################## def main(): application = webapp.WSGIApplication([('/', PageRender)],debug=True) wsgiref.handlers.CGIHandler().run(application) # main()関数を実行 if __name__ == "__main__": main()