2009-09-10 6 views
12

Usługi takie jak bit.ly doskonale nadają się do skracania adresów URL, które chcesz uwzględnić w tweetach i innych rozmowach. Jaka jest najprostsza aplikacja do skracania adresów URL, którą można napisać w pythonie dla Google App Engine?Jaka jest najprostsza aplikacja do skracania adresów URL, którą można napisać w pythonie dla Google App Engine?

+3

mógłbym napisać bardzo krótki jeden, tak długo, jak tylko potrzeba, aby skrócić 256 adresów URL. – MusiGenesis

+0

Czy chcesz, aby Twój kod korzystał z istniejącej usługi lub skracał sam URL? – Triptych

+0

po co na nowo odkrywać koło? – Thomi

Odpowiedz

28

To brzmi jak wyzwanie!

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

Przyjemnie - proste, jasne, skuteczne! –

+0

Czy możesz podać link do działającej próbki? – trusktr

+0

@trusktr Nie powiedziałabym czegoś tak prostego (lub polecam, aby ktokolwiek to zrobił) - może być podatny na nadużycia, ponieważ nie ma nic do ochrony przed nadużyciami ze strony spamerów itp. –