2009-09-10 7 views
12

bit.lyのようなサービスは、つぶやきやその他の会話に含めるURLを短縮するのに最適です。 PythonでGoogle App Engine用に書くことができる最も単純なURL短縮アプリケーションは何ですか?Google App EngineのPythonで書くことができる最も単純なURL短縮アプリケーションは何ですか?

+3

私は限り、あなたは唯一の256件のURLを短縮するために、必要に応じて、信じられないほどの短いものを書くことができます。 – MusiGenesis

+0

コードで既存のサービスを使用するか、URL自体を短縮しますか? – Triptych

+0

なぜ車を改造するのですか? – Thomi

答えて

28

これは挑戦のようですね!

from google.appengine.ext import db 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp import run_wsgi_app 

class ShortLink(db.Model): 
    url = db.TextProperty(required=True) 

class CreateLinkHandler(webapp.RequestHandler): 
    def post(self): 
    link = ShortLink(url=self.request.POST['url']) 
    link.put() 
    self.response.out.write("%s/%d" % (self.request.host_url, link.key().id()) 

    def get(self): 
    self.response.out.write('<form method="post" action="/create"><input type="text" name="url"><input type="submit"></form>') 

class VisitLinkHandler(webapp.RequestHandler): 
    def get(self, id): 
    link = ShortLink.get_by_id(int(id)) 
    if not link: 
     self.error(404) 
    else: 
     self.redirect(link.url) 

application = webapp.WSGIApplication([ 
    ('/create', CreateLinkHandler), 
    ('/(\d+)', VisitLinkHandler), 
]) 

def main(): 
    run_wsgi_app(application) 

if __name__ == "__main__": 
    main() 
+2

実に素敵 - シンプルでクリアな、効果的! –

+0

実用サンプルへのリンクを提供できますか? – trusktr

+0

@trusktr私は実際には、この単純なもの(あるいは他の誰かに推薦するもの)を置くことはしません - それはスパマーなどによる乱用から保護するものがないため、悪用される傾向があります。 –

1

githubには、github.com/nileshk/url-shortenerのdjangoアプリがあります。私はそれを包括的なサイト、http://github.com/voidfiles/url-shortenerのより多くのものにするためにそれをフォークしました。 GAEプロジェクトの定型との完全な

関連する問題