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