ホームページ > バックエンド開発 > Python チュートリアル > Python Flask を使用して効率的で簡潔な URL 短縮サービスを構築する

Python Flask を使用して効率的で簡潔な URL 短縮サービスを構築する

王林
リリース: 2023-05-08 17:34:32
転載
838 人が閲覧しました

1. Flask アプリケーションをセットアップする

まず、プロジェクト用の新しいディレクトリを作成し、そのディレクトリでターミナルを開きます。次に、次のコマンドを実行して、プロジェクトの新しい仮想環境を作成します。

# Windows の場合:
virtualenv venv
# Linux の場合:
python3 -m venv venv

次のコマンドを実行して、仮想環境をアクティブ化します。

# Windows の場合
venv/Scripts/activate
# linux の場合
source venv/ bin/ activate

次に、次のコマンドを実行して Flask をインストールします。

pip install Flask

Create a new という名前のファイルを作成します。 app.py ファイルを作成し、次のコードを追加して基本的な Flask アプリケーションをセットアップします:

from flask import Flask, request, redirect
app = Flask(__name__)
@app.route('/')
def index():
    return 'Welcome to the URL Shortener'
if __name__ == '__main__':
    app.run(debug=True)
ログイン後にコピー

次のコマンドを実行して Flask 開発サーバーを起動します:

python app.py
ログイン後にコピー

Web ブラウザで http://localhost:5000 にアクセスして、「URL Shortener へようこそ」メッセージを表示します。

2. URL を辞書に保存する

次に、元の URL とそれに対応する短縮 URL を Python 辞書に保存します。次のコードを app.py ファイルに追加します:

url_map = {}
@app.route('/shorten', methods=['POST'])
def shorten_url():
    original_url = request.form['url']
    short_url = generate_short_url(original_url)
    url_map[short_url] = original_url
    return short_url
def generate_short_url(original_url):
    # Generate a unique short URL for the original URL
    # (We'll implement this in the next step)
    pass
ログイン後にコピー

3. 一意の短縮 URL の生成

一意の短縮 URL を生成するには、ha ギリシャ関数を使用します。ハッシュ関数は入力 (この場合は生の URL) を受け取り、固定長の出力 (短い URL) を返します。 Pythonhashlib ライブラリの一部である SHA-1 ハッシュ関数を使用します。次のコードを app.py ファイルに追加します。 ユーザーは元の URL にリダイレクトされます。次のコードを

app.py

ファイルに追加します:

import hashlib
def generate_short_url(original_url):
    hash = hashlib.sha1(original_url.encode())
    short_url = hash.hexdigest()[:8]
    return short_url
ログイン後にコピー

以上がPython Flask を使用して効率的で簡潔な URL 短縮サービスを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート