Hatena::ブログ(Diary)

Djangoへの片思い日記 RSSフィード

2008-06-10

[] Google App Engine が凄すぎる気がしてきた

Google Developer Day 2008 に行ってきました。

で、基調講演聞いたあと、Google App Engineコードラボに参加してきました。

まぁ簡単に言うと Hackathon です。

画像掲示板つくってみる

画像掲示板を書いてみました。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import wsgiref.handlers, cgi

from google.appengine.api import images

from google.appengine.api import users
from google.appengine.ext import webapp,db

class ImageAndText(db.Model):
    user = db.UserProperty()
    date = db.DateTimeProperty(auto_now_add=True)
    image = db.BlobProperty()
    text = db.TextProperty()

class MainPage(webapp.RequestHandler):
    def get(self):
        user = users.get_current_user()
        if not user:
            self.redirect(users.create_login_url(self.request.uri))
        self.response.out.write("""
          <form action="/edit" enctype="multipart/form-data" method="post">
            <div><textarea name='text' ></textarea></div>
            <div><label>photo:</label></div>
            <div><input type="file" name="img"/></div>
            <div><input type="submit" value="photo upload"></div>
          </form>""")
        self.response.out.write('<ul>')
        query = ImageAndText().all()
        limit = 10
        items = query.order('-date').fetch(limit=limit)
        for item in items:
            self.response.out.write('<li>')
            self.response.out.write('<div>%s</div>' %  cgi.escape(item.text))
            self.response.out.write('<div><img src="/photo/%s" /></div>' % item.key())
            self.response.out.write('<div>%s post by %s</div>' % (item.date, item.user.nickname()))
            self.response.out.write('</li>')
        self.response.out.write('</ul>')
        count = query.count()
        if count > limit:
            items = query.order('-date').fetch(offset=limit, limit=count-limit)
            for item in items:
                item.delete()

class EditPage(webapp.RequestHandler):
    def post(self):
        user = users.get_current_user()
        imageAndText =  ImageAndText()
        imageAndText.user = user
        data = self.request.get("img")
        imageAndText.image = db.Blob(data)
        imageAndText.text = self.request.get('text')
        imageAndText.put()
        self.redirect('/')

class Photo(webapp.RequestHandler):
    def get(self,photoid):
        image = ImageAndText.get(photoid).image
        self.response.headers['Content-Type'] = 'image/jpeg'
        self.response.out.write(image)
        return

def main():
    application = webapp.WSGIApplication(
        [('/',MainPage),
         ('/edit',EditPage),
         ('/photo/([^/]+)',Photo)],
        debug=True)
    wsgiref.handlers.CGIHandler().run(application)
if __name__ == '__main__':
    main()

本当にこれだけです。

データベースの設定とかいりません!!

超簡単です。

http://yoshioris.appspot.com/

本当に凄いんです!!

正直、ここまで凄いと思っていませんでした。

ぶっちゃけ Djangoホスティングサービスくらいに思ってましたが

Django 使わなくても全然かまわないです。


今まで web アプリの入門的な簡単なアプリとかは

PerlPHP で書いてレンタルサーバに置くのが一番楽でしたが

それを越えてるとおもいます。

しかも、Python 勉強中の僕でも

説明聞いて 2時間で出来ちゃいました。

認証機能やデータベースまで含めて

こんなに簡単に出来るなんて凄すぎる><


今、新しく web アプリ作るなら

選択肢の一つとして Google App Engine は完全に アリ だと思います。

Python 温泉Google App Engine で遊んでみようとおもいます!!

muscovyduckmuscovyduck 2008/06/11 17:54 Google App Engine SDKで試させていただきました。手元では
if __name__ == ’main’:

if __name__ == ’__main__’:
に修正する必要がありましたが、無事動作させることができました。

jYoshiorijYoshiori 2008/06/11 18:02 本当だ!!間違えてますね。
修正しました><

なまえなまえ 2008/06/12 01:56 MVCがめちゃくちゃな古代のコードなんだけど

GOGO 2008/06/12 03:02 GOテスト

なまえなまえ 2008/06/12 14:39 MVC自体がSmalltalkの時代からある化石だろ

なまえなまえ 2008/06/12 19:40 すみません。試しに画像をあげてみたらメールアドレスとか出てしまったのでお手数ですが削除していただけますか?「ハンンドスプリング〜」のような文字が画像に記載されています。
よろしくお願いします。

なまえなまえ 2008/08/01 15:08 ためしに投稿したら、Emailでてしまいました。
削除お願いします。

なまえなまえ 2008/08/01 15:09 ためしに投稿したら、Emailでてしまいました。
削除お願いします。

オンラインブログ検定オンラインブログ検定 2008/12/14 20:43 Google APP 勉強してます。掲示盤遣わしていただきました。
大変勉強になりました。

お手数ですがお手数ですが 2010/07/17 08:49 ためしに投稿したら、Emailでてしまいました。
お手数ですが、削除お願いします。

tajataja 2011/07/24 10:42 れはアメリカのゲームです。1度やってみてください。
これは、たった3分でできるゲームです。試してみてください。
驚く結果をご覧いただけます。
このゲームを考えた本人は、メールを読んでからたった10分で願い事がかなったそうです。このゲームは、おもしろく、かつ、あっと驚く結果を貴方にもたらすでしょう。

約束してください。絶対に先を読まず、1行ずつ進む事。
たった3分ですから、ためす価値ありです。


まず、ペンと、紙をご用意下さい。
先を読むと、願い事が叶わなくなります。


1,まず、1番から、11番まで、縦に数字を書いてください。




2,1番と2番の横に好きな3〜7の数字をそれぞれお書き下さい。





3,3番と7番の横に知っている人の名前をお書き下さい。(必ず、興味のある性別名前を書く事。男なら女の人、女なら男の人、ゲイなら同姓の名前をかく)





必ず、1行ずつ進んでください。先を読むと、なにもかもなくなります。





4,4,5,6番の横それぞれに、自分の知っている人の名前をお書き下さい。これは、家族の人でも知り合いや、友人、誰でも結構です。






まだ、先を見てはいけませんよ!!





5,8、9、10、11番の横に、歌のタイトルをお書き下さい。





6,最後にお願い事をして下さい。



さて、ゲームの解説です。

1)このゲームの事を、2番に書いた数字の人に伝えて下さい。

2)3番に書いた人は貴方の愛する人です。

3)7番に書いた人は、好きだけれど叶わぬ恋の相手です。

4)4番に書いた人は、貴方がとても大切に思う人です。

5)5番に書いた人は、貴方の事をとても良く理解してくれる相手です。

6)6番に書いた人は、貴方に幸運をもたらしてくれる人です。

7)8番に書いた歌は、3番に書いた人を表す歌。

8)9番に書いた歌は、7番に書いた人を表す歌。

9)10番に書いた歌は、貴方の心の中を表す歌。

10)そして、11番に書いた歌は、貴方の人生を表す歌です。



この書き込みを読んでから、1時間以内に10個の掲示板にこの書き込みをコピーして貼って下さい。



そうすれば、あなたの願い事は叶うでしょう。もし、貼らなければ、願い事を逆のことが起こるでしょう。とても奇妙ですが当たってませんか?

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証