2016-06-20 6 views
0

私はDjango 1.9を使ってリンク短縮を構築しています。ユーザーが長いURLを入力できるシンプルなHTMLページを作成しました。私はこのURLを短縮するためのメソッドもコーディングしました。データはデータベースに格納されており、短縮URLをユーザーに表示できます。Djangoでリンク短縮を構築する

私は次に何をしなければならないか知りたい。ユーザーが短いURLにアクセスするとどうなりますか?リダイレクトなどを使用する必要がありますか?私はこの話題について全く無知です。

+0

URLを短縮したり、独自のロジックを作成してURLを短縮するには、サードパーティのパッケージを使用していますか? – MicroPyramid

+0

@ MicroPyramid私は自分の方法を書いています。 –

+0

はい、リダイレクトを使用します - データベース内の実際のURLを検索してから、そのサイトにリダイレクトされた永続的な(したがってブラウザが直進します)。 – jonrsharpe

答えて

1

通常、URLを呼び出すと、301 Permanently movedによってメインURLにリダイレクトする必要があります。

def resolve_url(request,url): 
    origin_url=resolve(url) # read from redis or so. 
    return HttpResponseRedirect(origin_url) 

EDIT: 追加コードを使用する@ダニー・カレンヒント

1

あなただけの、そのようmiddlewareを書く代わりに、すべてのビューで同じコードを書くHttpResponseRedirect

1

を経由してURLに移動でき短縮されたURLが格納されているモデルにあれば、短縮URLをHttpResponseRedirectを使って長いURLにリダイレクトできます。

class RedirectMiddleware(object): 
    # Check if client IP is allowed 
    def process_request(self, request): 
     '''you can get the current url from request and just filter with the model and redirect to longurl with HttpResponseRedirect.''' 
     return HttpResponseRedirect(full_url) 
関連する問題