網(wǎng)站開(kāi)發(fā)騰訊云云函數(shù)如何實(shí)現(xiàn)代碼除了html模板,只需要4行代碼開(kāi)發(fā)什么網(wǎng)站賺錢(qián)
2022-09-16
先放一個(gè)我已經(jīng)部署好的RSS在線閱讀器頁(yè)面:
只要在url中傳入需要解析的RSS訂閱地址,比如xxxx/rss?=,就可以解析RSS并渲染成你想要的博客風(fēng)格。
除了html模板,整個(gè)實(shí)現(xiàn)代碼只需要4行代碼。
概念
它是如何工作的?簡(jiǎn)單解釋一下:
騰訊云功能是騰訊云提供的執(zhí)行環(huán)境。您只需要編寫(xiě)一個(gè)簡(jiǎn)單的、單一用途的云函數(shù),將其與您的騰訊云基礎(chǔ)設(shè)施和其他云服務(wù)生成的事件相關(guān)聯(lián)。
當(dāng)然,并不是說(shuō)沒(méi)有服務(wù)器,而是說(shuō)你在使用的時(shí)候,不需要關(guān)心底層資源,也不需要登錄服務(wù)器進(jìn)行優(yōu)化服務(wù)器。您只需要專(zhuān)注于最核心的代碼片段,就可以跳過(guò)復(fù)雜繁瑣的基礎(chǔ)工作。. 核心代碼片段完全由事件或請(qǐng)求觸發(fā),平臺(tái)根據(jù)請(qǐng)求自動(dòng)并行調(diào)整服務(wù)資源。它具有幾乎無(wú)限的擴(kuò)展能力,空閑時(shí)不運(yùn)行任何資源。代碼無(wú)狀態(tài)運(yùn)行,可以輕松實(shí)現(xiàn)快速迭代和快速部署。
它的一般執(zhí)行流程如下:
所以,本質(zhì)上,云服務(wù)幫助你整合云資源。你只需要寫(xiě)最核心的代碼,比如當(dāng)一個(gè)請(qǐng)求來(lái)的時(shí)候,如何處理和返回相應(yīng)的數(shù)據(jù)。所有其他與服務(wù)器部署相關(guān)的事情都留給云服務(wù)提供商。這樣做的核心好處是節(jié)省了大量資源。只有當(dāng)有人訪問(wèn)你的網(wǎng)站時(shí),才會(huì)計(jì)算資源消耗的價(jià)格,大大降低了成本。
也許你只是想建立一個(gè)博客。過(guò)去,你可能需要購(gòu)買(mǎi)一臺(tái)服務(wù)器一年,至少幾百元一年。其次,如果你的博客流量不是很高,可能一年也就十幾塊錢(qián)。
3分鐘部署網(wǎng)站
我們打開(kāi)創(chuàng)建函數(shù)服務(wù)頁(yè)面:
選擇 Web 函數(shù)模板:
然后就可以設(shè)置一些基本信息了,我這里沒(méi)有修改,直接點(diǎn)。
等待大約 30 秒后,將創(chuàng)建一個(gè)服務(wù)。
接下來(lái),我們跳轉(zhuǎn)到代碼編輯頁(yè)面。由于我們?cè)谏厦娴倪x項(xiàng)中選擇了Web開(kāi)發(fā),所以代碼默認(rèn)有一個(gè)基本的框架模板。(是什么?是的,一個(gè)web開(kāi)發(fā)框架,像Java下面的那個(gè),也可以很方便的開(kāi)發(fā)一個(gè)web服務(wù)。官方文檔:)
模板代碼已經(jīng)有了最基本的路徑返回值(“/”),我們改幾句,然后點(diǎn)擊左下角的部署按鈕。部署十多秒后,點(diǎn)擊Test,我們可以看到返回的Body,如下圖。這時(shí)候你訪問(wèn)頁(yè)面,返回的結(jié)果也是一樣的。
一個(gè)最基本的web服務(wù)器就可以了,不用買(mǎi)域名和證書(shū),不用SSH登錄服務(wù)器,不用手動(dòng)編譯代碼。
10分鐘開(kāi)發(fā)一個(gè)在線RSS閱讀站
上面是一個(gè)小測(cè)試,然后是一個(gè)稍微復(fù)雜一點(diǎn)的例子。
**我一直覺(jué)得RSS閱讀是一種過(guò)時(shí)的閱讀方式,但它的精神卻一直流傳下來(lái)。**比如微信的訂閱號(hào),可以說(shuō)它的本質(zhì)也是一種RSS閱讀。通過(guò)關(guān)注訂閱并獲取更新文章的推送,您可以自定義您的閱讀內(nèi)容。
所以想做一個(gè)RSS解析器,可以通過(guò)傳入RSS URL(很多網(wǎng)站還保留這個(gè)URL,比如CSDN、阮一峰的博客等)來(lái)渲染RSS鏈接中的所有文章,并顯示在網(wǎng)頁(yè)上優(yōu)越的。以后還可以深度修改頁(yè)面的顯示,做一個(gè)網(wǎng)頁(yè)版的微信訂閱號(hào),也不是不可能的,哈哈哈。
好了,我們不談花里胡哨的東西,我們先從最簡(jiǎn)單的事情開(kāi)始,渲染 RSS 鏈接。
我們使用的是官方的模板,環(huán)境比較完善,方便開(kāi)發(fā)。
我們首先需要一個(gè) RSS 解析的框架,其中有一個(gè)框架可以解析 RSS url。
使用 pip3 安裝:
然后我們將代碼添加到 app.py 中:
import feedparser
@app.route('/rss')
def rss():
feed = feedparser.parse(request.args.get('rssurl'))
return render_template('rss.html', entries=feed.entries)
在這里,我做了一波本地調(diào)試,查看了feed參數(shù),得到了我的結(jié)果:
可以看到,解析出來(lái)的rss鏈接被框架解析成一個(gè)數(shù)組,每個(gè)數(shù)組就是一篇文章的標(biāo)題、作者、鏈接等。
根據(jù)上面的參數(shù)名,我們?cè)偬砑右粋€(gè)rss/html,放到文件夾里,寫(xiě)我稍微美化的html頁(yè)面網(wǎng)站建設(shè),把每篇文章循環(huán)插入到html中,這里我們使用自帶的渲染模板:
RSS閱讀博客
{% for entry in entries %}
{{ entry.summary | safe }}
{% endfor %}
兩個(gè)文件修改后,點(diǎn)擊部署,訪問(wèn)騰訊云分配給我們的域名:
////rss/列表
-
可以看到,我的CSDN博客的RSS流解析完美,可以一一打開(kāi)。請(qǐng)參閱文章頂部的動(dòng)畫(huà)。
Web的優(yōu)缺點(diǎn)分析
可以看出,一個(gè)網(wǎng)站的開(kāi)發(fā)與傳統(tǒng)的網(wǎng)站開(kāi)發(fā)有很大的不同。它省略了傳統(tǒng)開(kāi)發(fā)中復(fù)雜但不經(jīng)常修改的配置和流程網(wǎng)站制作,讓開(kāi)發(fā)人員可以專(zhuān)注于業(yè)務(wù)邏輯的開(kāi)發(fā)。但這種發(fā)展真的很完美嗎?我想到了它的優(yōu)點(diǎn)和缺點(diǎn)。
**最明顯的優(yōu)勢(shì)就是簡(jiǎn)化了開(kāi)發(fā)步驟網(wǎng)站開(kāi)發(fā),省去了很多無(wú)聊的部署工作量。**然而,它的簡(jiǎn)化是有代價(jià)的,簡(jiǎn)化犧牲了很大一部分的靈活性和可定制性。簡(jiǎn)化有用的前提是云服務(wù)提供商已經(jīng)做了這些事情并且做得很好。如果你的網(wǎng)站需要很多復(fù)雜的邏輯,需要優(yōu)化網(wǎng)關(guān)的配置,那么有很多事情是做不到的,至少目前的情況是做不到的。
上面提到的弊端,其實(shí)會(huì)帶來(lái)一個(gè)很大的問(wèn)題,就是沉沒(méi)成本。當(dāng)你花很多時(shí)間在上面,卻發(fā)現(xiàn)有一些小需求或定制無(wú)法實(shí)現(xiàn)時(shí),那你就去、工單,或者選擇老老實(shí)實(shí)的買(mǎi)個(gè)虛擬機(jī),手動(dòng)重新部署。
當(dāng)然,以上觀點(diǎn)是從開(kāi)發(fā)者的角度出發(fā)的。
作為普通消費(fèi)者,您可能只需要為博客部署一個(gè)靜態(tài)網(wǎng)站,或者宣傳自己的騰云網(wǎng)絡(luò)和產(chǎn)品。那么它滿足要求的概率就很高。
除了上面的主要矛盾之外,還有一點(diǎn)我想提出來(lái),就是目前在線代碼編輯頁(yè)面的調(diào)試功能有點(diǎn)太弱了。
在最初的web模板中,在線依賴庫(kù)好像缺少新版本和代碼,導(dǎo)致我調(diào)試了可以在本地運(yùn)行的代碼,放了各種不成功,但錯(cuò)誤信息卻很難找到。結(jié)果,我不得不在 VS Code 的終端中手動(dòng)打開(kāi)服務(wù)并發(fā)出 curl 請(qǐng)求才能看到錯(cuò)誤消息。
當(dāng)然網(wǎng)站開(kāi)發(fā),這可能是我自己的彎路,但在頁(yè)面上,很難一眼看出窗口在哪里。
在用戶體驗(yàn)方面,還有很多可以做的。
總結(jié)
不知不覺(jué)又是一篇2500字的文章,一整個(gè)周末就過(guò)去了。
這個(gè)概念已經(jīng)提出了幾年,它的產(chǎn)品形態(tài)總感覺(jué)處于摸索階段。它的用戶群是開(kāi)發(fā)者還是普通消費(fèi)者,其實(shí)都會(huì)受到產(chǎn)品形態(tài)的影響。
無(wú)論如何,節(jié)省的成本是有目共睹的,我也希望我的云服務(wù)器到期后,可以在上面部署我的博客和其他服務(wù),這樣可以節(jié)省很多開(kāi)支。僅成本就值得我不斷關(guān)注。
如果文章對(duì)你有幫助,請(qǐng)轉(zhuǎn)發(fā)給你的老板,你的支持和鼓勵(lì)對(duì)我很重要~