欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何利用Python打造短鏈服務(wù)

如何利用Python打造短鏈服務(wù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比蘭溪網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式蘭溪網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋蘭溪地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴(lài)。

一、越來(lái)越長(zhǎng)的網(wǎng)址與短鏈服務(wù)

互聯(lián)網(wǎng)發(fā)展愈快,功能越多,有些網(wǎng)址也越來(lái)越長(zhǎng),如果僅僅是瀏覽還好,涉及到傳播,一大串的網(wǎng)址分發(fā)容易出錯(cuò)也不易推廣。而且,有些互聯(lián)網(wǎng)巨頭嚴(yán)防死守競(jìng)爭(zhēng)對(duì)手的的鏈接出現(xiàn)在自家的產(chǎn)品里,用盡一切手段限制競(jìng)爭(zhēng)對(duì)手的網(wǎng)址鏈接在自家產(chǎn)品上被順利打開(kāi)引流。

如何利用Python打造短鏈服務(wù)

處于便于傳播、不影響頁(yè)面美觀或者是繞過(guò)屏蔽的目的,網(wǎng)址縮短服務(wù)應(yīng)運(yùn)而生。

目前國(guó)內(nèi)有很多家網(wǎng)站提供網(wǎng)站縮短服務(wù),比如騰訊家的t.im、微博家的t.cn、百度家的dwz.cn等,有一些只是提供簡(jiǎn)單的網(wǎng)址縮短服務(wù),有一些則在網(wǎng)址縮短服務(wù)的基礎(chǔ)上還增加了訪(fǎng)客統(tǒng)計(jì)的功能,對(duì)一些推廣鏈接來(lái)說(shuō),很有用。

如何利用Python打造短鏈服務(wù)

短鏈的實(shí)現(xiàn)方式很簡(jiǎn)單,我們可以使用Python輕松地構(gòu)建一個(gè)短鏈服務(wù)出來(lái)。

 

二、構(gòu)建短鏈服務(wù)

網(wǎng)址縮短與短鏈生成的方式,一般有兩種。
一種是用哈希算法,一種則是生成隨機(jī)字符串與原網(wǎng)址的對(duì)應(yīng)存儲(chǔ)在數(shù)據(jù)庫(kù)中。
在此,我們使用后一種方法。

短鏈服務(wù)終究是一個(gè)Web服務(wù),我們需要一個(gè)Web框架。

Python中有很多優(yōu)秀的Web框架,比如Flask、Django、Tornado……

每個(gè)框架都有各自的特色和優(yōu)點(diǎn),每個(gè)框架也有各自的擁躉者。在此,我們選用Django,原因無(wú)他,使用熟悉而已。

 

1、創(chuàng)建一個(gè)虛擬環(huán)境

為了與本機(jī)原有的Python環(huán)境相隔離,我們使用virtualenv創(chuàng)建一個(gè)隔離的虛擬Python環(huán)境。

如何利用Python打造短鏈服務(wù)

 

2、安裝Django

使用active命令進(jìn)入虛擬環(huán)境中,安裝所需要的Django庫(kù)。

如何利用Python打造短鏈服務(wù)

 

3、創(chuàng)建Django項(xiàng)目和應(yīng)用

使用django-admin工具創(chuàng)建一個(gè)項(xiàng)目(project)dwz和一個(gè)應(yīng)用(app)shortener

如何利用Python打造短鏈服務(wù)

我們啟動(dòng)項(xiàng)目,看看是否正確

如何利用Python打造短鏈服務(wù)

啟動(dòng)項(xiàng)目

嗯,啟動(dòng)正常的

如何利用Python打造短鏈服務(wù)

接下來(lái),我們創(chuàng)建一個(gè)用于保存原網(wǎng)址和隨機(jī)字符串的數(shù)據(jù)庫(kù)模型

 

4、分析和創(chuàng)建數(shù)據(jù)庫(kù)模型

因?yàn)槲覀冞x用的是隨機(jī)字符串匹配原始網(wǎng)址的網(wǎng)址縮短方案,所以,我們需要使用數(shù)據(jù)庫(kù)將生成的隨機(jī)字符串和原始網(wǎng)址一一對(duì)應(yīng)保存在一張數(shù)據(jù)表中。

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

  • 隨機(jī)字符串:對(duì)應(yīng)于原始網(wǎng)址的縮短碼;

  • 原始網(wǎng)址URL

  • 創(chuàng)建時(shí)間:方便進(jìn)行記錄統(tǒng)計(jì)

  • 活動(dòng)狀態(tài):方便短鏈管理

那么,我們就需要在Django中創(chuàng)建一張有四個(gè)字段的數(shù)據(jù)模型。

在models.py文件中創(chuàng)建一個(gè)DwzURL模型:

如何利用Python打造短鏈服務(wù)

將應(yīng)用添加到setting.py的INSTALLED_APPS 中:

如何利用Python打造短鏈服務(wù)

生成模型:

如何利用Python打造短鏈服務(wù)

完成之后,運(yùn)行項(xiàng)目,去后臺(tái)看看。
先創(chuàng)建一個(gè)超級(jí)用戶(hù):

如何利用Python打造短鏈服務(wù)

登錄后臺(tái):

如何利用Python打造短鏈服務(wù)

發(fā)現(xiàn)并沒(méi)有我們創(chuàng)建的模型,原來(lái)是admin.py中忘記添加了:

如何利用Python打造短鏈服務(wù)

我們?cè)赼dmin.py中把模型添加進(jìn)去。對(duì)了,英文界面看著不適應(yīng),順便去setting.py文件中把語(yǔ)言改成中文。

在admin.py中添加模型:

如何利用Python打造短鏈服務(wù)

修改網(wǎng)址語(yǔ)言為中文:

如何利用Python打造短鏈服務(wù)

我們?cè)偃ズ笈_(tái)看看:

如何利用Python打造短鏈服務(wù)

嗯,已經(jīng)出現(xiàn)我們新建的模型,而且網(wǎng)站語(yǔ)言從英文變成了中文。

我們新建一個(gè)記錄看看,就拿之前的淘寶活動(dòng)鏈接吧:

如何利用Python打造短鏈服務(wù)

嗯,后臺(tái)上也出現(xiàn)了我們新建的記錄:

如何利用Python打造短鏈服務(wù)

對(duì)應(yīng)關(guān)系是建立了,但是這是手動(dòng)的,我們需要的是輸入一個(gè)長(zhǎng)網(wǎng)址,就生成一個(gè)縮短碼。

 

5、優(yōu)化模型方法

嗯,我們創(chuàng)建一個(gè)生成縮短碼的函數(shù),再重寫(xiě)DwzURL模型的save()方法,讓其在輸入一個(gè)URL的時(shí)候自動(dòng)生成一個(gè)縮短碼。

創(chuàng)建縮短碼生成函數(shù),從英文字母和數(shù)字中隨機(jī)生成一個(gè)6位數(shù)的字符串:

如何利用Python打造短鏈服務(wù)

重寫(xiě)DwzURL模型的save()方法,讓其在保存的時(shí)候自動(dòng)調(diào)用縮短碼生成函數(shù)生成一個(gè)縮短碼:

如何利用Python打造短鏈服務(wù)

我們來(lái)測(cè)試一下,新增一個(gè)記錄,只輸入網(wǎng)址URL:

如何利用Python打造短鏈服務(wù)

結(jié)果是按照我們的設(shè)想順利生成了一個(gè)縮短碼:

如何利用Python打造短鏈服務(wù)

這樣就達(dá)到了我們期望的只輸入網(wǎng)址,自動(dòng)隨機(jī)生成一個(gè)縮短碼的效果。

 

6、創(chuàng)建視圖

Django是典型的MVC模式的Web框架,模型(models)負(fù)責(zé)數(shù)據(jù)記錄、視圖(views)負(fù)責(zé)業(yè)務(wù)邏輯、路由(urls)負(fù)責(zé)業(yè)務(wù)邏輯對(duì)應(yīng)的頁(yè)面路徑,最后模板(templates)負(fù)責(zé)頁(yè)面渲染。

我們已經(jīng)構(gòu)建好了模型,接下來(lái)我們來(lái)寫(xiě)網(wǎng)址縮短的業(yè)務(wù)邏輯(視圖)。

目前我們整個(gè)服務(wù)的邏輯很簡(jiǎn)單:

  • 三個(gè)功能:首頁(yè)展示、縮短碼生成、短鏈跳轉(zhuǎn)

  • 兩個(gè)視圖:首頁(yè)(GET方法呈現(xiàn)首頁(yè))及短碼生成視圖(POST方法生成縮短碼)、短鏈跳轉(zhuǎn)視圖

開(kāi)干!

首先是首頁(yè)第一個(gè)視圖:
創(chuàng)建一個(gè)基于類(lèi)的視圖,創(chuàng)建一個(gè)get方法,用于呈現(xiàn)首頁(yè)HTML;創(chuàng)建一個(gè)post方法,接收表單傳遞的網(wǎng)址并生成縮短碼及返回:

如何利用Python打造短鏈服務(wù)

創(chuàng)建第二個(gè)短鏈跳轉(zhuǎn)視圖,獲取縮短碼進(jìn)行從數(shù)據(jù)庫(kù)中進(jìn)行對(duì)比,如果存在則重定向至原網(wǎng)址,如果不存在則返回404:

如何利用Python打造短鏈服務(wù)

視圖創(chuàng)建好了,接下來(lái)設(shè)置路由。

 

7、設(shè)置路由

按照我們寫(xiě)的視圖,我們需要新增兩個(gè)路由:

  • 首頁(yè)

  • 跳轉(zhuǎn)

在urls.py的urlpatterns列表中新增兩條路由,分別對(duì)應(yīng)兩個(gè)視圖:

如何利用Python打造短鏈服務(wù)

路由也設(shè)置好了,對(duì)了,我們還缺了HTML模板。去網(wǎng)上搜索一個(gè)搜索框的模板:
嗯,就它了!

如何利用Python打造短鏈服務(wù)

創(chuàng)建一個(gè)模板目錄templates,在settings.py中設(shè)置模板路徑:

如何利用Python打造短鏈服務(wù)

創(chuàng)建一個(gè)static目錄,在settings文件中設(shè)置靜態(tài)文件路徑:

如何利用Python打造短鏈服務(wù)

 

8、測(cè)試

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

如何利用Python打造短鏈服務(wù)

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

如何利用Python打造短鏈服務(wù)

打開(kāi)首頁(yè)看看:

如何利用Python打造短鏈服務(wù)

我們輸入一個(gè)長(zhǎng)的網(wǎng)址看看(gif動(dòng)圖):

如何利用Python打造短鏈服務(wù)

嗯,這樣,一個(gè)具備基本功能的短鏈服務(wù)就已經(jīng)使用Python構(gòu)造好了。

看完上述內(nèi)容,你們掌握如何利用Python打造短鏈服務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站名稱(chēng):如何利用Python打造短鏈服務(wù)
轉(zhuǎn)載源于:http://www.chinadenli.net/article24/gccjce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google營(yíng)銷(xiāo)型網(wǎng)站建設(shè)做網(wǎng)站商城網(wǎng)站手機(jī)網(wǎng)站建設(shè)企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站