不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python做web開發(fā),就多了一項(xiàng)技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專業(yè)的優(yōu)勢(shì)到底體現(xiàn)在哪里:python做web開發(fā)有哪些好處和不足?,關(guān)于python開發(fā)web程序,python小白求助?,如何用純 Python 寫交互式 Web 應(yīng)用???。
1.python做web開發(fā)有哪些好處和不足?
python有很好的web framework,比如django,所以開發(fā)很迅速。不足貌似是用于大型網(wǎng)站開發(fā)仍然比較少,沒(méi)有太多實(shí)戰(zhàn)檢驗(yàn)。
2.關(guān)于python開發(fā)web程序,python小白求助?
這個(gè)問(wèn)題就比較復(fù)雜了,有本書,叫《python網(wǎng)絡(luò)編程》,里面有比較詳細(xì)的講解,從服務(wù)器端和客戶端最簡(jiǎn)單的網(wǎng)絡(luò)交互開始講起,一直到各種網(wǎng)絡(luò)協(xié)議,請(qǐng)求隊(duì)列等等。你自己去找吧。
3.如何用純 Python 寫交互式 Web 應(yīng)用?
不用學(xué)前端編程,你就能用 Python 簡(jiǎn)單高效寫出漂亮的交互式 Web 應(yīng)用,將你的數(shù)據(jù)分析成果立即展示給團(tuán)隊(duì)和客戶。痛點(diǎn)從我開始折騰數(shù)據(jù)分析工具的那一天,就沒(méi)有想明白一件事兒 —— 我打算把數(shù)據(jù)分析的成果做成一個(gè) Web 應(yīng)用,為什么這么難?我需要的核心功能,無(wú)非是在網(wǎng)頁(yè)上接收用戶輸入,然后做分析處理,把分析結(jié)果反饋給用戶,完事兒。可是這談何容易?很多人都會(huì)微笑著告訴你,想做 Web 應(yīng)用?這得學(xué)前端編程, HTML + 了解一下吧!什么?你還需要在后臺(tái)做數(shù)據(jù)分析?那你就得學(xué) Web 框架了。你說(shuō)喜歡 Python ?那就學(xué)個(gè) Django 或者 Flask 好了。我也不是沒(méi)有看過(guò) Django 和 Flask 的教程,還曾經(jīng)付費(fèi)學(xué)習(xí)過(guò)。光是 Django 配置環(huán)境,就夠?qū)懸徽鲁鰜?lái)。作為學(xué)習(xí)的中間成果,我還寫了這篇《如何用 Python 做 Web 開發(fā)?——Django 環(huán)境配置》分享給你。真正讓我痛苦的,不是 Web 框架的操作有多么瑣碎,而是教程里的案例,為什么都那么奇怪?幾乎所有的教程,都指向一個(gè)目標(biāo): 來(lái),我教你做一個(gè) blog 出來(lái)! 我用你教?!我要是想用 blog ,可以直接注冊(cè)一個(gè)免費(fèi)的??!為什么我要自己開發(fā)個(gè) blog 出來(lái)?為什么你就不能告訴我,該怎么把我目前的數(shù)據(jù)分析結(jié)果,迅速挪到 Web 頁(yè)面上,跟用戶實(shí)時(shí)交互?雖然二者的結(jié)果,都是做一個(gè) Web 應(yīng)用出來(lái)。但是,它們關(guān)注的焦點(diǎn),需要的功能,能一樣嗎?但是人家寫書和做教程的人,就是不疾不徐,堅(jiān)持一定要教會(huì)你,如何做一個(gè) blog 出來(lái)……你不學(xué),又能怎么辦呢?你難道想只憑 Python 腳本,就做一個(gè) Web 應(yīng)用出來(lái)?還真別說(shuō),最近,這個(gè)事兒從幻想,變成了現(xiàn)實(shí)。樣例這不,我就用純 Python 腳本寫了個(gè) Web 應(yīng)用。我編寫的代碼里,沒(méi)有一絲半毫的 Web 框架,,甚至是 HTML 。這玩意兒能用嗎?你自己來(lái)試試看。請(qǐng)你打開瀏覽器,輸入以下鏈接: Python 和循環(huán)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)嚴(yán)重交通擁堵?》,應(yīng)該對(duì)這個(gè)數(shù)據(jù)集很熟悉。只不過(guò),當(dāng)時(shí)我們更注重的,是用循環(huán)神經(jīng)網(wǎng)絡(luò)搭建了一個(gè)嚴(yán)重?fù)矶率录A(yù)測(cè)模型。而今天,我們是要進(jìn)行探索性數(shù)據(jù)分析,也就是根據(jù)我們感興趣的目標(biāo),對(duì)數(shù)據(jù)進(jìn)行整理操作,然后可視化顯示。選定之后,你會(huì)看到右側(cè)提示兩個(gè)信息:你篩選之后,數(shù)據(jù)框包含行數(shù);在層疊地圖上的可視化結(jié)果。怎么樣?麻雀雖小,五臟俱全。雖然咱們這個(gè) Web 應(yīng)用很簡(jiǎn)單,不過(guò)交互分析該有的功能和流程,基本上都涵蓋了。你可能會(huì)問(wèn): 王老師,編這么一個(gè)應(yīng)用出來(lái),不簡(jiǎn)單吧? 讓我?guī)愕侥缓螅纯词遣皇呛軓?fù)雜。幕后我把這個(gè)應(yīng)用的全部源代碼,都為你存儲(chǔ)到了 Github 上。請(qǐng)你訪問(wèn)這個(gè)網(wǎng)址獲取。可以看到,一共包含了 4 個(gè)文件。有意思的是,其中 3 個(gè),包括:..txt都只是部署到遠(yuǎn)程服務(wù)器時(shí),需要用到的配置文件而已。也就是說(shuō),只有*一個(gè) .py 是主角,它包含了實(shí)現(xiàn)咱們?nèi)拷换ナ綌?shù)據(jù)分析功能的 Python 腳本文件。這代碼,少說(shuō)也得有幾百行吧?別擔(dān)心,打開來(lái)看看:上面這張截圖,就已經(jīng)包含了實(shí)現(xiàn)交互數(shù)據(jù)分析功能的全部代碼。神奇吧?解讀這么短的代碼,為什么能有如此強(qiáng)大的功能?這是因?yàn)樗澈笫褂玫囊粋€(gè)軟件包,叫做 streamlit 。它是干什么用的?一言以蔽之,給你賦能,讓你能夠不去操心什么前端后端。只寫 Python ,只關(guān)注功能,你就能寫出一個(gè)交互式 Web 應(yīng)用出來(lái)。當(dāng)然,既然*是 Web 應(yīng)用,那么實(shí)際上前后端的功能都是齊備的。只不過(guò),這些交由 Streamlit 來(lái)幫你費(fèi)心操辦。你根本不用管。爆發(fā)為什么會(huì)有人做了這么一款神器出來(lái)?原因很簡(jiǎn)單,咱們前面提到的痛點(diǎn),是大伙兒都有的。咱們這些麻瓜(Muggle),遇到痛點(diǎn)只能忍著。但是真正的魔法師(優(yōu)秀程序員),是忍不了的。在這段來(lái)自 PyData LA 2021 的視頻里,Streamlit 的 CEO Adrien Treuille 談及了他在數(shù)據(jù)智能企業(yè)中,長(zhǎng)期遭遇的痛點(diǎn)。*的痛點(diǎn),就是數(shù)據(jù)科學(xué)家訓(xùn)練好機(jī)器學(xué)習(xí)模型后,需要驗(yàn)證效果,和用戶反饋溝通。但是,做機(jī)器學(xué)習(xí)的工程師本身,并不掌握這一整套的工具棧。所以,就得在把全部的數(shù)據(jù)分析和模型訓(xùn)練工作完成后,把這東西移交給一個(gè)工具制作團(tuán)隊(duì)。人家做完以后,就告訴數(shù)據(jù)科學(xué)團(tuán)隊(duì)說(shuō),做好了。但是注意,現(xiàn)在處于需求凍結(jié)階段。這個(gè)應(yīng)用你們可以隨便用,只是別亂改。改壞了我們管不了。因?yàn)樽罱鼉蓚€(gè)月,我們還得給其他若干數(shù)據(jù)分析團(tuán)隊(duì)做 app 。大概幾個(gè)月以后,我們又能回來(lái)幫助你們了……Adrien Treuille 很敏銳地捕捉到了這個(gè)長(zhǎng)期痛點(diǎn),于是在 2021 年, 創(chuàng)立了 streamlit 。目標(biāo)很簡(jiǎn)單,給數(shù)據(jù)科學(xué)團(tuán)隊(duì)提供簡(jiǎn)單的工具,讓他們使用已經(jīng)掌握的 Python 編程技能,就能直接做 Web 應(yīng)用。什么 “等上兩三個(gè)月不許改”?!你們自己慢慢兒玩兒去吧,我們想怎么改,就怎么改!至于做出來(lái)的東西嘛,可以是這樣的:資源看到這里,是不是心動(dòng)了?也打算學(xué)習(xí)一下 Streamlit ?沒(méi)問(wèn)題,我前面給你提供的樣例,就在 github 上,你可以直接查看源碼。注意因?yàn)閿?shù)據(jù)比較大,有接近 300 MB,github 免費(fèi)空間放不下,所以我為你存到了云盤上,請(qǐng)從這個(gè)鏈接下載,提取碼為 ddpp 。如果你希望重現(xiàn)這個(gè)小應(yīng)用,并且一步步學(xué)習(xí)掌握 Streamlit 的基礎(chǔ)知識(shí)和技能,我也已經(jīng)為你寫好了一份手把手的教程。地址在這里。它不僅教你如何設(shè)置環(huán)境,安裝工具,寫作代碼,甚至連如何免費(fèi)部署到 heroku 平臺(tái),讓用戶使用,都毫無(wú)保留地教給了你。那篇文章,我用于參加少數(shù)派年度征文活動(dòng),所以就不能全文展示在這里了。讀完以后,如果你覺(jué)得有收獲,歡迎在少數(shù)派平臺(tái)上幫我點(diǎn)個(gè)贊。謝謝支持!思考嘗試過(guò)之后,你應(yīng)該不難發(fā)現(xiàn),Streamlit 給你帶來(lái)了什么。如果你學(xué)過(guò) 和 Flask, Django 等 Web 應(yīng)用開發(fā)技術(shù),Streamlit 可以加快你的 Web 應(yīng)用開發(fā)與測(cè)試進(jìn)程。如果你還沒(méi)有學(xué)過(guò)上述技術(shù), Streamlit 可以給你賦能,讓你一下子有了把數(shù)據(jù)分析結(jié)果變成產(chǎn)品的能力。給你講點(diǎn)兒更激進(jìn)的。有人已經(jīng)希望能用它替代掉 Flask 用于產(chǎn)品發(fā)布了。還有人說(shuō),將來(lái)寫技術(shù)文檔,也應(yīng)該充分使用 Streamlit 。甚至,還把它比作了數(shù)據(jù)科學(xué)界的 iPhone 。這里,它是借喻 iPhone 開啟智能手機(jī)時(shí)代,說(shuō)明 Streamlit 的劃時(shí)代性。我不希望你也變得如此激進(jìn)。因?yàn)檫@里提到的每一種功用,現(xiàn)在還都有非常專業(yè)的工具做的更好,而且新的工具也在不斷涌現(xiàn)。例如說(shuō),我們?cè)诙鄠€(gè)教程中一直使用 Jupyter Notebook ?,F(xiàn)在憑借 Voila 擴(kuò)展的加持,你也可以很輕松地把 Jupyter Notebook 變成 Web app ,而且可以免費(fèi)運(yùn)行在 mybinder 上面。但是,你可以看到,一個(gè)新的工具,以一種簡(jiǎn)單,而不是更繁復(fù)的辦法,解決一個(gè)功能痛點(diǎn),是一件多么令人欣喜的事兒??戳诉@篇文章,可能會(huì)給你一種誤解,似乎 為代表的前端編程技術(shù),再也不需要學(xué)了。其實(shí)不是這樣的??梢韵胂?,開發(fā)門檻降低以后,將來(lái)會(huì)有更多的人使用 Python 來(lái)做 Web 應(yīng)用。用 Streamlit 這樣的方法,他們只是開發(fā)出了一個(gè)原型。要是想打造精品,就必須精細(xì)調(diào)控很多細(xì)節(jié)。這時(shí)候, 如果你精通 ,那你潛在的合作對(duì)象一下子就多了起來(lái),你掌握的這門技術(shù),也就有了更大的價(jià)值。還記得嗎?我不止一次給你強(qiáng)調(diào)過(guò),比起一個(gè)工具自身的能力來(lái),協(xié)作網(wǎng)絡(luò)更重要。忘了的話,記得復(fù)習(xí)《學(xué) Python ,能提升你的競(jìng)爭(zhēng)力嗎?》。這就好像印刷術(shù)的發(fā)明,不是讓會(huì)寫字這件事兒變得失去價(jià)值,而是全社會(huì)都增大了對(duì)好作品的渴求。深刻的思考,加上有效的文字表達(dá),會(huì)讓你生存得更好。當(dāng)然,如果你不希望精通寫作技藝,只是想做一個(gè)抄書匠糊口。那么印刷術(shù)就可能會(huì)替代你的工作,結(jié)果就不那么美妙了。小結(jié)這篇文章,我為你介紹了 Streamlit 這款有趣的工具。希望你讀過(guò)之后,掌握了以下知識(shí)點(diǎn):借助 Streamlit ,你可以用純 Python 編制 Web 應(yīng)用;學(xué) Web 設(shè)計(jì)依然很有前途,因?yàn)槟愕臐撛诤献魅后w正在迅速擴(kuò)大;不要惹魔法師(優(yōu)秀程序員)。他們的痛點(diǎn)需求會(huì)轉(zhuǎn)化成無(wú)盡的戰(zhàn)斗力,興許會(huì)直接替掉你的日常工作。喜歡別忘了點(diǎn)贊,并及時(shí)寫下你的感受與評(píng)論。也歡迎你轉(zhuǎn)發(fā)給親朋好友,讓他們也加入咱們的討論中來(lái)。別忘了關(guān)注我的專欄 “玉樹芝蘭”,以免錯(cuò)過(guò)更多的更新推送。延伸閱讀你可能也會(huì)對(duì)以下話題感興趣。點(diǎn)擊鏈接就可以查看。如何高效學(xué) Python ?如何用 iPad 運(yùn)行 Python 代碼?論文讀不懂怎么辦?如何不寫 SQL ,探索和分析數(shù)據(jù)庫(kù)?題圖:Photo by Luke Chesser on Unsplash
就拿大數(shù)據(jù)說(shuō)話,優(yōu)勢(shì)一目了然,從事IT行業(yè),打開IT行業(yè)的新大門,找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專業(yè)和系統(tǒng)的學(xué)習(xí)。