中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Python打造短鏈服務

發布時間:2021-12-09 10:51:04 來源:億速云 閱讀:187 作者:柒染 欄目:大數據

如何利用Python打造短鏈服務,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、越來越長的網址與短鏈服務

互聯網發展愈快,功能越多,有些網址也越來越長,如果僅僅是瀏覽還好,涉及到傳播,一大串的網址分發容易出錯也不易推廣。而且,有些互聯網巨頭嚴防死守競爭對手的的鏈接出現在自家的產品里,用盡一切手段限制競爭對手的網址鏈接在自家產品上被順利打開引流。

如何利用Python打造短鏈服務

處于便于傳播、不影響頁面美觀或者是繞過屏蔽的目的,網址縮短服務應運而生。

目前國內有很多家網站提供網站縮短服務,比如騰訊家的t.im、微博家的t.cn、百度家的dwz.cn等,有一些只是提供簡單的網址縮短服務,有一些則在網址縮短服務的基礎上還增加了訪客統計的功能,對一些推廣鏈接來說,很有用。

如何利用Python打造短鏈服務

短鏈的實現方式很簡單,我們可以使用Python輕松地構建一個短鏈服務出來。

 

二、構建短鏈服務

網址縮短與短鏈生成的方式,一般有兩種。
一種是用哈希算法,一種則是生成隨機字符串與原網址的對應存儲在數據庫中。
在此,我們使用后一種方法。

短鏈服務終究是一個Web服務,我們需要一個Web框架。

Python中有很多優秀的Web框架,比如Flask、Django、Tornado……

每個框架都有各自的特色和優點,每個框架也有各自的擁躉者。在此,我們選用Django,原因無他,使用熟悉而已。

 

1、創建一個虛擬環境

為了與本機原有的Python環境相隔離,我們使用virtualenv創建一個隔離的虛擬Python環境。

如何利用Python打造短鏈服務

 

2、安裝Django

使用active命令進入虛擬環境中,安裝所需要的Django庫。

如何利用Python打造短鏈服務

 

3、創建Django項目和應用

使用django-admin工具創建一個項目(project)dwz和一個應用(app)shortener

如何利用Python打造短鏈服務

我們啟動項目,看看是否正確

如何利用Python打造短鏈服務

啟動項目

嗯,啟動正常的

如何利用Python打造短鏈服務

接下來,我們創建一個用于保存原網址和隨機字符串的數據庫模型

 

4、分析和創建數據庫模型

因為我們選用的是隨機字符串匹配原始網址的網址縮短方案,所以,我們需要使用數據庫將生成的隨機字符串和原始網址一一對應保存在一張數據表中。

分析一下,這張數據表里面,一共有些什么字段:

  • 隨機字符串:對應于原始網址的縮短碼;

  • 原始網址URL

  • 創建時間:方便進行記錄統計

  • 活動狀態:方便短鏈管理

那么,我們就需要在Django中創建一張有四個字段的數據模型。

在models.py文件中創建一個DwzURL模型:

如何利用Python打造短鏈服務

將應用添加到setting.py的INSTALLED_APPS 中:

如何利用Python打造短鏈服務

生成模型:

如何利用Python打造短鏈服務

完成之后,運行項目,去后臺看看。
先創建一個超級用戶:

如何利用Python打造短鏈服務

登錄后臺:

如何利用Python打造短鏈服務

發現并沒有我們創建的模型,原來是admin.py中忘記添加了:

如何利用Python打造短鏈服務

我們在admin.py中把模型添加進去。對了,英文界面看著不適應,順便去setting.py文件中把語言改成中文。

在admin.py中添加模型:

如何利用Python打造短鏈服務

修改網址語言為中文:

如何利用Python打造短鏈服務

我們再去后臺看看:

如何利用Python打造短鏈服務

嗯,已經出現我們新建的模型,而且網站語言從英文變成了中文。

我們新建一個記錄看看,就拿之前的淘寶活動鏈接吧:

如何利用Python打造短鏈服務

嗯,后臺上也出現了我們新建的記錄:

如何利用Python打造短鏈服務

對應關系是建立了,但是這是手動的,我們需要的是輸入一個長網址,就生成一個縮短碼。

 

5、優化模型方法

嗯,我們創建一個生成縮短碼的函數,再重寫DwzURL模型的save()方法,讓其在輸入一個URL的時候自動生成一個縮短碼。

創建縮短碼生成函數,從英文字母和數字中隨機生成一個6位數的字符串:

如何利用Python打造短鏈服務

重寫DwzURL模型的save()方法,讓其在保存的時候自動調用縮短碼生成函數生成一個縮短碼:

如何利用Python打造短鏈服務

我們來測試一下,新增一個記錄,只輸入網址URL:

如何利用Python打造短鏈服務

結果是按照我們的設想順利生成了一個縮短碼:

如何利用Python打造短鏈服務

這樣就達到了我們期望的只輸入網址,自動隨機生成一個縮短碼的效果。

 

6、創建視圖

Django是典型的MVC模式的Web框架,模型(models)負責數據記錄、視圖(views)負責業務邏輯、路由(urls)負責業務邏輯對應的頁面路徑,最后模板(templates)負責頁面渲染。

我們已經構建好了模型,接下來我們來寫網址縮短的業務邏輯(視圖)。

目前我們整個服務的邏輯很簡單:

  • 三個功能:首頁展示、縮短碼生成、短鏈跳轉

  • 兩個視圖:首頁(GET方法呈現首頁)及短碼生成視圖(POST方法生成縮短碼)、短鏈跳轉視圖

開干!

首先是首頁第一個視圖:
創建一個基于類的視圖,創建一個get方法,用于呈現首頁HTML;創建一個post方法,接收表單傳遞的網址并生成縮短碼及返回:

如何利用Python打造短鏈服務

創建第二個短鏈跳轉視圖,獲取縮短碼進行從數據庫中進行對比,如果存在則重定向至原網址,如果不存在則返回404:

如何利用Python打造短鏈服務

視圖創建好了,接下來設置路由。

 

7、設置路由

按照我們寫的視圖,我們需要新增兩個路由:

  • 首頁

  • 跳轉

在urls.py的urlpatterns列表中新增兩條路由,分別對應兩個視圖:

如何利用Python打造短鏈服務

路由也設置好了,對了,我們還缺了HTML模板。去網上搜索一個搜索框的模板:
嗯,就它了!

如何利用Python打造短鏈服務

創建一個模板目錄templates,在settings.py中設置模板路徑:

如何利用Python打造短鏈服務

創建一個static目錄,在settings文件中設置靜態文件路徑:

如何利用Python打造短鏈服務

 

8、測試

由于是在本地做測試,我們需要修改一下本機的hosts文件,將一個短域名映射到127.0.0.1上,如果是部署在服務器上的,就直接綁定域名和部署。

如何利用Python打造短鏈服務

將g.me映射到本地端口:

如何利用Python打造短鏈服務

打開首頁看看:

如何利用Python打造短鏈服務

我們輸入一個長的網址看看(gif動圖):

如何利用Python打造短鏈服務

嗯,這樣,一個具備基本功能的短鏈服務就已經使用Python構造好了。

看完上述內容,你們掌握如何利用Python打造短鏈服務的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汝城县| 阳东县| 深水埗区| 丘北县| 双桥区| 盐源县| 皋兰县| 吉林市| 奈曼旗| 海门市| 大庆市| 平利县| 自治县| 会同县| 岳普湖县| 石门县| 桃园市| 松溪县| 沈丘县| 吴忠市| 微博| 平谷区| 高邮市| 弋阳县| 襄城县| 广元市| 莒南县| 章丘市| 彩票| 翼城县| 囊谦县| 呼图壁县| 陵川县| 年辖:市辖区| 仁布县| 马龙县| 孟州市| 泗洪县| 江北区| 嘉定区| 凭祥市|