用Python Flask創(chuàng)建簡(jiǎn)潔高效的URL短鏈接服務(wù)
大家好,使用 Python Flask 創(chuàng)建 URL 縮短器是一個(gè)有趣而簡(jiǎn)單的項(xiàng)目,可以幫助您深入了解 Web 開(kāi)發(fā)的世界。Flask 是 Python 的輕量級(jí) Web 框架,可讓您快速輕松地構(gòu)建 Web 應(yīng)用程序。在本文中,我們將介紹使用 Flask 構(gòu)建基本 URL 縮短器的過(guò)程。
一、設(shè)置 Flask 應(yīng)用程序
首先,為您的項(xiàng)目創(chuàng)建一個(gè)新目錄并在該目錄中打開(kāi)一個(gè)終端。然后,運(yùn)行以下命令為您的項(xiàng)目創(chuàng)建一個(gè)新的虛擬環(huán)境:
# For windows:
virtualenv venv
# For linux:
python3 -m venv venv
通過(guò)運(yùn)行以下命令激活虛擬環(huán)境:
# For windows
venv/Scripts/activate
# For linux
source venv/bin/activate
接下來(lái),通過(guò)運(yùn)行以下命令安裝 Flask:
pip install Flask
在您的項(xiàng)目目錄中創(chuàng)建一個(gè)名為的新文件app.py并添加以下代碼以設(shè)置基本的 Flask 應(yīng)用程序:
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)運(yùn)行以下命令啟動(dòng) Flask 開(kāi)發(fā)服務(wù)器:
python app.py
在您的網(wǎng)絡(luò)瀏覽器中訪問(wèn)http://localhost:5000以查看“歡迎使用 URL 縮短器”消息。
二、將 URL 存儲(chǔ)在字典中
接下來(lái),我們會(huì)將原始 URL 及其相應(yīng)的縮短 URL 存儲(chǔ)在 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三、生成唯一的短 URL
要生成唯一的短 URL,我們將使用哈希函數(shù)。哈希函數(shù)接受輸入(在本例中為原始 URL)并返回固定長(zhǎng)度的輸出(短 URL)。我們將使用 SHA-1 哈希函數(shù),它是 Pythonhashlib庫(kù)的一部分。將以下代碼添加到您的app.py文件中:
import hashlib
def generate_short_url(original_url):
hash = hashlib.sha1(original_url.encode())
short_url = hash.hexdigest()[:8]
return short_url四、重定向到原始 URL
最后,我們將添加一個(gè)路由,以便在用戶訪問(wèn)縮短的 URL 時(shí)將用戶重定向到原始 URL。將以下代碼添加到您的app.py文件中:
@app.route('/<short_url>')
def redirect_url(short_url):
original_url = url_map.get(short_url)
if original_url:
return redirect(original_url到此這篇關(guān)于用Python Flask創(chuàng)建簡(jiǎn)潔高效的URL短鏈接服務(wù)的文章就介紹到這了,更多相關(guān)Python Flask創(chuàng)建短鏈接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實(shí)現(xiàn)發(fā)送和接收J(rèn)SON請(qǐng)求
本篇文章給大家分享了PHP實(shí)現(xiàn)發(fā)送和接收J(rèn)SON請(qǐng)求的詳細(xì)方法和實(shí)例代碼,有興趣的朋友可以參考學(xué)習(xí)下。2018-06-06
Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式
今天小編就為大家分享一篇Pytorch 數(shù)據(jù)加載與數(shù)據(jù)預(yù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python檢測(cè)遠(yuǎn)程udp端口是否打開(kāi)的方法
這篇文章主要介紹了python檢測(cè)遠(yuǎn)程udp端口是否打開(kāi)的方法,涉及Python操作socket實(shí)現(xiàn)檢測(cè)udp端口的技巧,需要的朋友可以參考下2015-03-03
python數(shù)據(jù)分析必會(huì)的Pandas技巧匯總
用Python做數(shù)據(jù)分析光是掌握numpy和matplotlib可不夠,numpy雖然能夠幫我們處理處理數(shù)值型數(shù)據(jù),但很多時(shí)候,還有字符串,還有時(shí)間序列等,比如:我們通過(guò)爬蟲(chóng)獲取到了存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù),一些Pandas必會(huì)的用法,讓你的數(shù)據(jù)分析水平更上一層樓2021-08-08
Python實(shí)現(xiàn)接口自動(dòng)化封裝導(dǎo)出excel和讀寫excel數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)接口自動(dòng)化封裝導(dǎo)出excel和讀寫excel數(shù)據(jù),文中的示例代碼簡(jiǎn)潔易懂,希望對(duì)大家有所幫助2023-07-07
基于Django實(shí)現(xiàn)日志記錄報(bào)錯(cuò)信息
這篇文章主要介紹了基于Django實(shí)現(xiàn)日志記錄報(bào)錯(cuò)信息,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python基于PycURL自動(dòng)處理cookie的方法
這篇文章主要介紹了Python基于PycURL自動(dòng)處理cookie的方法,實(shí)例分析了Python基于curl操作cookie的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07

