2009-09-10 12 views
12

Bit.ly gibi hizmetler, URL'leri kısaltmak için tweet'lere ve diğer konuşmalara eklemek istediğiniz harikadır. Google App Engine için python'da yazabileceği en basit URL kısaltıcı uygulaması nedir?Google App Engine için python'da yazabileceği en basit URL kısaltıcı uygulaması nedir?

+3

Ben sürece yalnızca 256 URL'ler kısaltmak için gerektiği gibi, inanılmaz kısa bir yazabiliriz. – MusiGenesis

+0

Kodunuzun varolan bir hizmeti kullanmasını veya URL'nin kendisini kısaltmasını istiyor musunuz? – Triptych

+0

neden tekerleği yeniden icat ediyorsun? – Thomi

cevap

28

Bu bir meydan okuma gibi geliyor!

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

Gerçekten hoş - basit, açık, etkili! –

+0

Çalışan bir örneğe bağlantı sağlayabilir misiniz? – trusktr

+0

@trusktr Aslında bu kadar basit bir şey yapmam (ya da başka kimseyi tavsiye etmem) - kötüye kullanmaya eğilimli olması muhtemeldir, çünkü spam gönderenler tarafından kötüye kullanıma karşı korunacak hiçbir şeye sahip değildir. –

1

github, github.com/nileshk/url-shortener bir Django uygulaması yoktur. Ben onu tüm kapsayan bir site, http://github.com/voidfiles/url-shortener daha yapmak için çatal. GAE'nin proje Demirbaş ile komple benzer