最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ubuntu下Python+Flask分分鐘搭建自己的服務(wù)器教程

 更新時(shí)間:2019年11月19日 09:11:00   作者:熊鐵柱  
今天小編就為大家分享一篇Ubuntu下Python+Flask分分鐘搭建自己的服務(wù)器教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近幫朋友做了點(diǎn)東西,最后需要將結(jié)果在網(wǎng)頁中展示,這就需要搭建個(gè)服務(wù)器,做幾個(gè)網(wǎng)頁把數(shù)據(jù)信息展示出來。網(wǎng)上找了一下,阿里騰訊都有租服務(wù)器的業(yè)務(wù),但是有的時(shí)候我們并不需要那么復(fù)雜大型的服務(wù)器,只是一個(gè)小功能,小展示,并不復(fù)雜,那么我們完全可以自己動(dòng)手,在自己的小電腦上搭建一個(gè)服務(wù)器。下面文章記錄一下自己折騰的過程。

Flask安裝

Ubuntu自帶python2,因此不用麻煩裝python了。Flask是pyhton下的一個(gè)很實(shí)用的web框架,接下來安裝Flask就好,網(wǎng)上找了一圈,大部分都說要先裝virtualenv,還要配置環(huán)境巴拉巴拉,其實(shí)并不用這么麻煩,virtualenv確實(shí)有一些優(yōu)點(diǎn),比如隔離環(huán)境啥的,不過如果我們就是在自己機(jī)器上使用,沒有過多需求要切換各種環(huán)境啥的,可以直接安裝Flask使用,感興趣的小伙伴也可以自己查virtualenv的功能和使用。真正安裝Flask只需一句話,在命令行中輸入已下代碼即可:

sudo pip install flask

當(dāng)然如果你沒安裝pip的話就得先安裝pip了,這里不再概述,網(wǎng)上都有講怎么安裝pip。

Flask的使用

ok,裝好flask之后就可以馬上試一試了,當(dāng)然最開始我們都是用helloword的例子來開始,可以這么認(rèn)為,flask的框架是有一定模板的,那么我們只需要記住幾個(gè)基本模板,等需要具體操作的時(shí)候再根據(jù)具體情況進(jìn)行相應(yīng)修改就可以了。下面是helloword的模板,也是最基本的一種用法。

新建一個(gè)python文件,輸入下面的代碼:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
 return "hello world" 
if __name__ == "__main__":
 app.run(host='0.0.0.0',port =8080)

寫完之后,在文件夾下運(yùn)行該python文件,此時(shí)啟動(dòng)服務(wù),然后在瀏覽器中輸入localhost:8080即可訪問,此時(shí)返回我們之前定義的helloword,如下圖所示:

完這些,我們又有了新的需求,如果我在瀏覽器上面不僅僅要輸入localhost:8080,我還想輸入或者傳入其他的參數(shù),比如一個(gè)id或者一個(gè)字符,很多時(shí)候我們都是根據(jù)請(qǐng)求的這一串url中根據(jù)傳入的參數(shù)去進(jìn)行數(shù)據(jù)的篩選等操作。接下來我們只需要對(duì)傳入的url進(jìn)行處理即可,使用下面代碼即可:

from flask import Flask
from flask import request

app = Flask(__name__)

@app.route("/info",methods=['GET',])
def sendinfo():
 #獲取到傳入url中參數(shù)id對(duì)應(yīng)的值
 sendid = request.args.get('id')
 return "Get info id is " + str(sendid) 
if __name__ == "__main__":
 app.run(host='0.0.0.0',port =8080)

改完代碼之后重新啟動(dòng),然后在瀏覽器中輸入"http://localhost:8080/info?id=666",即可顯示效果,如下圖所示:

可以看到這個(gè)時(shí)候界面把我們?cè)趗rl中傳入的參數(shù)顯示出來了。

接下來我們又會(huì)有想法了,能不能顯示html文件?當(dāng)然可以!這個(gè)時(shí)候我們要在原來的放置python腳本的文件夾下新建一個(gè)templates文件夾,所有你想調(diào)用的html文件都放在這個(gè)文件夾里面。下面簡單實(shí)現(xiàn)一個(gè)html文件,當(dāng)然小伙伴們也可以自己去網(wǎng)上下載一些更好的html模板。

 <html>
 <body>
 <h1>Hello World</h1>
 <p>This is a Test for Flask</p>
 </body>
 </html>

這個(gè)時(shí)候,我們的文件夾結(jié)構(gòu)如下圖所示:

然后我們修改python腳本。

from flask import Flask
from flask import render_template
app = Flask(__name__)

@app.route("/")
def sendtemplate):
 return render_template("test.html") 
if __name__ == "__main__":
 app.run(host='0.0.0.0',port =8080)

重啟之后,運(yùn)行腳本,在瀏覽器中輸入地址,效果如下圖所示:

晉級(jí)-Flask模板中顯示參數(shù)

剛剛講到了怎么在url中傳入?yún)?shù),也講到了怎么調(diào)用html模板文件,那么如何將兩者結(jié)合起來,輸入的url參數(shù)在模板中顯示出來?不要急,跟著下面一起做。首先修改python腳本。

 from flask import Flask
 from flask import request
 from flask import render_template
 
 app = Flask(__name__)
 
 @app.route("/info",methods=['GET',])
 def sendinfo_tem():
 #獲取到傳入url中參數(shù)id對(duì)應(yīng)的值
 sendid = request.args.get('id')
 return render_template("test.html",u=sendid)
 
 if __name__ == "__main__":
 app.run(host='0.0.0.0',port=8080)

u這個(gè)參數(shù)就是傳入html模板中的值,當(dāng)然也可以有第二個(gè)、第三個(gè)參數(shù)值傳入。接下來修改一下html文件,接收并顯示我們傳入的參數(shù)值。

 <html>
 <body>
 <h1>Hello World</h1>
 <p>The send id is {{u}}</p>
 </body>
 </html>

"{{u}}"就是我們傳入的參數(shù)值,接下來重啟運(yùn)行,在瀏覽器輸入url,效果如下圖所示:

晉級(jí)-顯示圖片

一般說到顯示圖片,大家就會(huì)想到,ok我在html文件中寫好要顯示的圖片的路徑,比如/home/xxx/xxx.jpg這種,但是在這里不能直接寫絕對(duì)路徑,一定要通過url寫,因?yàn)檫@個(gè)時(shí)候相當(dāng)于通過服務(wù)器的請(qǐng)求來顯示圖片。這個(gè)時(shí)候我們首先要在腳本所在的文件夾中新建static目錄,再在static目錄中新建images目錄,然后將要顯示的圖片放入images目錄中,具體文件結(jié)構(gòu)如下圖所示。

然后我們修改之前的html文件。

 <html>
 <body>
 <h1>Hello World</h1>
 <p>The send id is {{u}}</p>
 <img src="{{url_for('static',filename='images/1.jpg')}}"/>
 </body>
 </html>

對(duì)于python腳本不用修改,但是由于python2的一些編碼問題,如果運(yùn)行后報(bào)錯(cuò)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 10: ordinal not in range(128)

等內(nèi)容,可以在前面加入以下三句話。

import sys
reload(sys)
sys.setdefaultencoding('utf8')

然后重啟運(yùn)行,在瀏覽器中輸入url,顯示如下所示:

這回圖片、傳參、html模板、文字全都教會(huì)大家了,小伙伴們可以自己設(shè)計(jì)美美的html,搭建服務(wù)器顯示了!

其他

此時(shí)搭建完的網(wǎng)站,只有和你的筆記本或者電腦(現(xiàn)在已經(jīng)變成服務(wù)器了)處于同一個(gè)局域網(wǎng)的小伙伴才能訪問你的網(wǎng)站,訪問的方式是將上面的url網(wǎng)址的localhost換成你的ip地址即可。有的時(shí)候如果我們想用外網(wǎng)讓其他人訪問,可以使用一些工具做內(nèi)網(wǎng)穿透,這里就不再細(xì)說,網(wǎng)上有很多免費(fèi)做內(nèi)網(wǎng)穿透的軟件,比如“花生殼"或者”nat123“等,大家可以自行查找。當(dāng)然我們這里只是最簡單的操作介紹了flask搭建服務(wù)器的操作,真正的大型服務(wù)器還要考慮性能、壓力、效率、安全等多種因素,感興趣的小伙伴可以再深入學(xué)習(xí)^_^

以上這篇Ubuntu下Python+Flask分分鐘搭建自己的服務(wù)器教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    這篇文章主要介紹了Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • nlp自然語言處理基于SVD的降維優(yōu)化學(xué)習(xí)

    nlp自然語言處理基于SVD的降維優(yōu)化學(xué)習(xí)

    這篇文章主要為大家介紹了nlp自然語言處理基于SVD的降維優(yōu)化學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Python中使用subprocess庫創(chuàng)建附加進(jìn)程

    Python中使用subprocess庫創(chuàng)建附加進(jìn)程

    這篇文章主要介紹了subprocess庫:Python中創(chuàng)建附加進(jìn)程的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • 手把手教你jupyter?notebook更換環(huán)境的方法

    手把手教你jupyter?notebook更換環(huán)境的方法

    在日常使用jupyter-notebook時(shí),可能會(huì)碰到需要切換不同虛擬環(huán)境的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于jupyter?notebook更換環(huán)境的方法,需要的朋友可以參考下
    2023-05-05
  • jupyter如何安裝自動(dòng)代碼補(bǔ)全提示

    jupyter如何安裝自動(dòng)代碼補(bǔ)全提示

    這篇文章主要介紹了jupyter如何安裝自動(dòng)代碼補(bǔ)全提示問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python 機(jī)器學(xué)習(xí)庫 NumPy入門教程

    Python 機(jī)器學(xué)習(xí)庫 NumPy入門教程

    在我們使用Python語言進(jìn)行機(jī)器學(xué)習(xí)編程的時(shí)候,這是一個(gè)非常常用的基礎(chǔ)庫。本文針對(duì)Python 機(jī)器學(xué)習(xí)庫 NumPy入門教程,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-04-04
  • matplotlib畫混淆矩陣與正確率曲線的實(shí)例代碼

    matplotlib畫混淆矩陣與正確率曲線的實(shí)例代碼

    混淆矩陣也稱誤差矩陣,是表示精度評(píng)價(jià)的一種標(biāo)準(zhǔn)格式,下面這篇文章主要給大家介紹了關(guān)于matplotlib畫混淆矩陣與正確率曲線的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 詳解Python字典查找性能

    詳解Python字典查找性能

    這篇文章主要為大家介紹了Python字典查找性能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-12-12
  • Python3列表List入門知識(shí)附實(shí)例

    Python3列表List入門知識(shí)附實(shí)例

    序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類推
    2020-02-02
  • pyqt5自定義信號(hào)實(shí)例解析

    pyqt5自定義信號(hào)實(shí)例解析

    這篇文章主要介紹了pyqt5自定義信號(hào)實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

马鞍山市| 田东县| 荆门市| 扎囊县| 山西省| 遵义县| 布尔津县| 中江县| 长丰县| 左云县| 吐鲁番市| 邯郸市| 仲巴县| 清水县| 磐安县| 江阴市| 乃东县| 科技| 墨江| 奉化市| 旬阳县| 盐池县| 新建县| 托里县| 烟台市| 安化县| 刚察县| 蓬莱市| 敦化市| 兴文县| 安塞县| 开封市| 海晏县| 石楼县| 道孚县| 西吉县| 曲麻莱县| 密山市| 乌兰察布市| 渝北区| 营山县|