• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

嵌入式工程師入門前后端系列2:搭建web.py環(huán)境

2020/12/15
119
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

web.py 是一個(gè)輕量級(jí)的 web 開發(fā)框架,作為初學(xué)者,我計(jì)劃先從這個(gè)學(xué)起來。https://webpy.org/ 這里是 webpy 的官方網(wǎng)站。

web.py is a web framework for Python that is as simple as it is powerful. web.py is in the public domain; you can use it for whatever purpose with absolutely no restrictions.

下面先在 Windows 下搭建 web.py 環(huán)境,網(wǎng)上提供的方法大部分是先把源碼包下載下來,然后進(jìn)入后 python setup.py install 安裝,但是用這種方法我總是安裝失敗。原因猜測(cè)是我的 python 版本和 web.py 版本匹配問題,后來解決方法是:通過 pip 安裝。

在 Windows DOS 窗口里輸入:pip install web.py==0.40

pip 如果不識(shí)別,需要在環(huán)境變量 PATH 中添加 C:/Python27/Scripts

它會(huì)提示如下錯(cuò)誤信息:

這時(shí)輸入 python -m pip install --upgrade pip

之后再重新輸入 pip install web.py==0.40

就不再報(bào)錯(cuò)了。

安裝成功后,進(jìn)入到目錄里執(zhí)行:python hello.py

hello.py 內(nèi)容如下:

import?web

urls?=?('/hello',?'hello',

)

class?hello(object):

def?GET(self):

return?'hello?world!'

if?__name__?==?"__main__":

app?=?web.application(urls,?globals())

app.run()

瀏覽器中輸入:http://127.0.0.1:8080/hello

在阿里云上部署,也是完全一樣的操作。

我們來解釋下這段代碼:

第 1 行:import web, 在每個(gè) web.py 應(yīng)用,必須先 import web 模塊。

第 3 行:把 URL 結(jié)構(gòu)告訴 web.py。

第一部分是匹配 URL 的正則表達(dá)式,比如例子中的’/hello’,對(duì)應(yīng)你在瀏覽器中輸入的 URL 是 localhost:8080/hello,如果你把改成 hello2,你再輸入原來 URL 就無法訪問。

網(wǎng)址得對(duì)應(yīng)修改才能正常訪問,

如果你改成

urls?=?('/',?'hello',

)

直接這么輸入就行了

第二部分是接受請(qǐng)求的類名稱。

第 6-8 行:

對(duì)應(yīng)上面的 hello,是一個(gè)類,

GET 用于請(qǐng)求網(wǎng)頁文本。

下面是返回的東西,也就是我們網(wǎng)頁看到的東西。

當(dāng)有人用 GET 請(qǐng)求 / 時(shí),這個(gè) GET 函數(shù)隨時(shí)會(huì)被 web.py 調(diào)用。

第 10 行:

一個(gè) python 文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,第二是 import 到其他的 python 腳本中被調(diào)用(模塊重用)執(zhí)行。因此 if __name__ == 'main': 的作用就是控制這兩種情況執(zhí)行代碼的過程,在 if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執(zhí)行)才會(huì)被執(zhí)行,而 import 到其他腳本中是不會(huì)被執(zhí)行的。

第 11 行:

這會(huì)告訴 web.py 去創(chuàng)建一個(gè)基于我們剛提交的 URL 列表的 application。這個(gè) application 會(huì)在這個(gè)文件的全局命名空間中查找對(duì)應(yīng)類。

第 12 行:

這會(huì)告訴 web.py 為我們啟動(dòng)上面我們寫的應(yīng)用。

參考資料:

https://www.cnblogs.com/dolphin0520/p/3343617.html

https://www.oschina.net/question/5189_4306

關(guān)注公眾號(hào),掃碼加入嵌入式交流群:

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
EP2C20F256I8N 1 Intel Corporation Field Programmable Gate Array, 1172 CLBs, 402.5MHz, 18752-Cell, CMOS, PBGA256, LEAD FREE, FBGA-256

ECAD模型

下載ECAD模型
$71.13 查看
EP4CE40F23C8N 1 Altera Corporation Field Programmable Gate Array, 2475 CLBs, 472.5MHz, 39600-Cell, PBGA484, 23 X 23 MM, 1 MM PITCH, LEAD FREE, FBGA-484

ECAD模型

下載ECAD模型
$66.37 查看
EP2C8Q208I8N 1 Altera Corporation Field Programmable Gate Array, 516 CLBs, 402.5MHz, 8256-Cell, CMOS, PQFP208, LEAD FREE, PLASTIC, QFP-208
$39.64 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

TopSemic,讓芯片使用更簡(jiǎn)單。 專注分享:嵌入式,單片機(jī),STM32,ARM,RTOS,Linux, 軟硬件,半導(dǎo)體,電子技術(shù)等相關(guān)內(nèi)容。