python实现第一个web_我的第一个python web开发框架(6)——第一个Hello World
小白中午聽(tīng)完老菜講的那些話后一直在思考,可想來(lái)想去還是一頭霧水,暈暈呼呼的一知半解,到最后還是想不明白,心想:老大講的太高深了,只能聽(tīng)懂一半半,看來(lái)只能先記下來(lái),將明白的先做,不明白的等以后遇到再學(xué)。
到晚上下班后回到家里,打開(kāi)電腦開(kāi)始寫(xiě)起代碼來(lái)......(傳送門:
要寫(xiě)一個(gè)web服務(wù),首先要做的就是實(shí)現(xiàn)程序的入口,所以先來(lái)個(gè)Hello World吧
1.創(chuàng)建項(xiàng)目
先在電腦創(chuàng)建這個(gè)目錄 E:\Python\simple\code (一定要全英文,因?yàn)镮DE有可能不支持中文路徑),然后運(yùn)行IDE軟件:PyCharm
點(diǎn)擊菜單File,然后點(diǎn)擊Open,彈出Open File or Porject窗口,在窗口中選擇剛才創(chuàng)建的目錄后,點(diǎn)擊OK
然后項(xiàng)目列表中就多出了一個(gè)項(xiàng)目
2.創(chuàng)建主入口文件
對(duì)項(xiàng)目code點(diǎn)右鍵 -> New -> Python File,在彈出窗口New Python file中,輸入文件名稱:main,點(diǎn)擊ok
然后在打開(kāi)的main.py文件中粘貼下面代碼
1 #!/usr/bin/evn python
2 #coding=utf-8
3
4 from bottle importdefault_app, get, run5 from beaker.middleware importSessionMiddleware6
7 #設(shè)置session參數(shù)
8 session_opts ={9 'session.type': 'file',10 'session.cookie_expires': 3600,11 'session.data_dir': '/tmp/sessions/simple',12 'session.auto': True13 }14
15 @get('/index/')16 defcallback():17 return 'Hello World!'
18
19 #函數(shù)主入口
20 if __name__ == '__main__':21 app_argv =SessionMiddleware(default_app(), session_opts)22 run(app=app_argv, host='0.0.0.0', port=9090, debug=True, reloader=True)
這時(shí)會(huì)發(fā)現(xiàn),IDE中bottle與beaker會(huì)出現(xiàn)紅色警告線,這是因?yàn)槟愕拈_(kāi)發(fā)環(huán)境還沒(méi)有安裝這兩個(gè)模塊
點(diǎn)擊右鍵運(yùn)行Debug 'main'后,下方的Debug窗口會(huì)出現(xiàn)ImportError: No module named 'bottle'這樣的提示,提示導(dǎo)入bottle包出錯(cuò)
所以我們需要先安裝這兩個(gè)包,點(diǎn)擊下方的Terminal,輸入pip install bottle 回車后開(kāi)始安裝bottle包
等安裝完成后,同樣的輸入pip install beaker 安裝beaker包
完成后,在main.py文件窗口中的空白處點(diǎn)右鍵,點(diǎn)擊Debug 'main',運(yùn)行Debug
會(huì)發(fā)現(xiàn)web服務(wù)已經(jīng)啟動(dòng)了,端口號(hào)是9090
我們打開(kāi)瀏覽器,在地址欄處輸入http://127.0.0.1:9090/index/ 回車后就可以看到Hello World了
3.程序代碼說(shuō)明
#!/usr/bin/evn python
這是標(biāo)識(shí)當(dāng)前腳本指定用python來(lái)執(zhí)行它,為了防止用戶沒(méi)有將python裝在默認(rèn)的/usr/bin路徑里,系統(tǒng)執(zhí)行時(shí)首先會(huì)到env設(shè)置里查找python的安裝路徑,再調(diào)用對(duì)應(yīng)路徑下的python程序來(lái)執(zhí)行。
# coding=utf-8
這一行說(shuō)明當(dāng)前文件用的是utf-8編碼
from bottle import default_app, get, run
from beaker.middleware import SessionMiddleware
第4與第5行用于導(dǎo)入bottle包和beaker包的指定模塊
由于bottle框架自身并沒(méi)有提供Session的支持,所以使用beaker中間件來(lái)實(shí)現(xiàn)。
# 設(shè)置session參數(shù)
session_opts = {
'session.type': 'file',
'session.cookie_expires': 3600,
'session.data_dir': '/tmp/sessions/simple',
'session.auto': True
}
第7到第13行,是創(chuàng)建一個(gè)session配置的字典,用來(lái)存儲(chǔ)session的存儲(chǔ)類型為文件類型,session過(guò)期時(shí)間為3600秒,session文件存放路徑為/tmp/sessions/simple (存放在linux系統(tǒng)tmp目錄下的文件,系統(tǒng)定期會(huì)自動(dòng)清理)
@get('/index/')
def callback():
return 'Hello World!'
第15到17行,我們定義了一個(gè)/index/的路由,用于瀏覽器訪問(wèn)時(shí),可以通過(guò)這個(gè)路同來(lái)定位到這里(也就是前面瀏覽器輸入url地址,這里我們可以隨意定義為任何路由都可以),訪問(wèn)路由的方式我們定義為get方式,當(dāng)然還可以定義為post、put、delete等訪問(wèn)路由的方式。
if __name__ == '__main__':
app_argv = SessionMiddleware(default_app(), session_opts)
run(app=app_argv, host='0.0.0.0', port=9090, debug=True, reloader=True)
第20行,它標(biāo)識(shí)當(dāng)前位置為程序的主入口,運(yùn)行程序時(shí),由這里開(kāi)始
第21行,初始化session參數(shù)
第22行,啟動(dòng)WSGI WEB程序,地址為本機(jī)地址,訪問(wèn)端口為9090,開(kāi)始debug,最后有個(gè)參數(shù)reloader設(shè)定項(xiàng)目代碼有修改時(shí),自動(dòng)重新啟動(dòng)web服務(wù),重新載入修改后的代碼
PS:我們使用的Bottle框架,它是一個(gè)快速的,簡(jiǎn)單的,非常輕量級(jí)的 Python WSGI Web 框架。它只有一文件,只依賴于 Python 標(biāo)準(zhǔn)庫(kù) 。懂英文的可以直接訪問(wèn):http://www.bottlepy.org/docs/dev/tutorial.html 查看bottle開(kāi)發(fā)文檔,也可以點(diǎn)擊:下載bottle中文文檔
版權(quán)聲明:本文原創(chuàng)發(fā)表于 博客園,作者為
python開(kāi)發(fā)QQ群:669058475(本群已滿)、733466321(可以加2群) 作者博客:http://www.cnblogs.com/EmptyFS/
總結(jié)
以上是生活随笔為你收集整理的python实现第一个web_我的第一个python web开发框架(6)——第一个Hello World的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 波形包络提取与峰值提取_研究提出从地震噪
- 下一篇: python对逻辑回归进行显著性_pyt