Python
 Computer >> コンピューター >  >> プログラミング >> Python

DjangoでURL短縮アプリを作成する方法を徹底解説

この記事では、Djangoを使ってURL短縮アプリを作成する方法を解説します。長いURLを短いURLへ変換するだけのシンプルなアプリですが、実装にはPythonライブラリを使用するため、Django専用の仕組みに依存せず、このコードは他のあらゆるPythonプロジェクトでも流用できます。

まず最初に、Djangoプロジェクトとアプリを作成しましょう。その後、settings.pyのINSTALLED_APPSにアプリを追加し、プロジェクトのurls.pyからアプリのURLを読み込むなど、基本的な設定を行っておいてください。

実装例

まず、pyshortenersモジュールをインストールします。

pip install pyshorteners

続いて、アプリ側のurls.pyを以下のように記述します。

from django.urls import path
from .views import url_shortner

urlpatterns = [
    path('', url_shortner.as_view(), name="url-shortner"),
]

ここでは、ホームURLに対してビューセットをビューとして割り当てています。

次に、views.pyを以下のように作成します。

from django.shortcuts import render
import pyshorteners
from django.views import View

class url_shortner(View):
    def post(self, request):
        long_url = 'url' in request.POST and request.POST['url']
        pys = pyshorteners.Shortener()
        short_url = pys.tinyurl.short(long_url)
        return render(request,'urlShortner.html', context={'short_url':short_url,'long_url':long_url})

    def get(self, request):
        return render(request,'urlShortner.html')

このコードでは、2つのリクエストハンドラを持つビューを定義しています。getハンドラはフロントエンドのHTMLを表示する役割を担い、postハンドラは送信された長いURLを受け取り、TinyURL APIを使って短縮したうえで、短縮URLと元のURLをコンテキストとして渡しながらページを再描画します。

次に、アプリのディレクトリ直下にtemplatesフォルダを作成し、その中にurlShortner.htmlというファイルを追加して、以下のコードを記述してください。

<!DOCTYPE html>
<html>
    <head>
        <title>Url Shortner</title>
    </head>
    <body>
        <div >
            <h1 >URL Shortner Application</h1>
            <form method="POST">{% csrf_token %}
                <input type="url" name="url" placeholder="Enter the link here" required>
                <button >Shorten URL</button>
            </form>
        </div>
        {% if short_url %}
        <div>
            <h3>Your shortened URL</h3>
            <div>
                <input type="url" id="short_url" value={{short_url}}> <button name="short-url">Copy URL</button> <small id="copied" class="px-5"></small>
            </div>
            <br>
            <span><b>Long URL: </b></span> <a href="{{long_url}}">{{long_url}}</a>
        </div>
        {%endif%}
    </body>
</html>

このテンプレートはフロントエンド部分に相当し、ユーザーが入力した長いURLを受け取ってサーバーへPOSTリクエストを送信します。処理結果として返された短縮URLは、{% if short_url %}タグによって条件分岐され、画面上にコピー可能な形で表示されます。

出力結果

DjangoでURL短縮アプリを作成する方法を徹底解説

  1. Google Tangoとは?スマートフォンをさらに賢くするARプラットフォームの魅力と活用術

    ポケモンGOの大ヒットによって、「拡張現実(AR)」が持つ大きな可能性はすでに多くの人々に知られるところとなりました。その流れをさらに押し進めたのが、Lenovo(レノボ)が発表したAndroidスマートフォン「Phab2 Pro」です。同機は世界初となるTango対応デバイスとして登場しました。Tangoとは、Googleが開発したスマートフォン向けの新しいARプラットフォームのことであり、公式リリースはPhab2 Proの発表と同時に行われました。というのも、当時このプラットフォームを動作させられる端末はPhab2 Proだけだったからです。Google自社製の「Pixel」と比べると規模

  2. 2022年版|Androidスマホで使える無料ポスター作成アプリ おすすめ10選

    ビジュアルは言葉よりも強力です!!視覚で表現されたアイデアは、より明確に、より大きなインパクトと記憶への残り方をもたらします。ビジュアル表現は、自分の芸術的なセンスを手軽に世界へ発信する絶好の機会にもなります。しかし、創造力と想像力は誰もが持っているものではありません。そこで活躍するのが、私たちの生活をシンプルにしてくれるアプリです。この記事では、Androidデバイスにダウンロードできる最高のポスター作成アプリをご紹介します。 ポスター作成アプリを使えば、美しく独創的なバナーやポスター、フライヤーを作成し、マーケティングの分野であなたのクリエイティビティを存分に発揮できます。主に販促用グラフ