我的第一個python web開發框架(6)——第一個Hello World
轉載 :
https://www.cnblogs.com/EmptyFS/p/7491949.html
小白中午聽完老菜講的那些話後一直在思考,可想來想去還是一頭霧水,暈暈呼呼的一知半解,到最後還是想不明白,心想:老大講的太高深了,只能聽懂一半半,看來只能先記下來,將明白的先做,不明白的等以後遇到再學。
到晚上下班後回到家裡,開啟電腦開始寫起程式碼來......(傳送門: )
要寫一個web服務,首先要做的就是實現程式的入口,所以先來個Hello World吧
1.建立專案
先在電腦建立這個目錄 E:\Python\simple\code (一定要全英文,因為IDE有可能不支援中文路徑),然後執行IDE軟體:PyCharm
點選選單File,然後點選Open,彈出Open File or Porject視窗,在視窗中選擇剛才建立的目錄後,點選OK
然後專案列表中就多出了一個專案
2.建立主入口檔案
對專案code點右鍵 -> New -> Python File,在彈出視窗New Python file中,輸入檔名稱:main,點選ok
然後在開啟的main.py檔案中貼上下面程式碼
1 #!/usr/bin/evn python 2 # coding=utf-8 3 4 from bottle import default_app, get, run 5 from beaker.middleware importSessionMiddleware 6 7 # 設定session引數 8 session_opts = { 9 'session.type': 'file', 10 'session.cookie_expires': 3600, 11 'session.data_dir': '/tmp/sessions/simple', 12 'session.auto': True 13 } 14 15 @get('/index/') 16 def callback(): 17 return 'Hello World!' 18 19 # 函式主入口 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)
這時會發現,IDE中bottle與beaker會出現紅色警告線,這是因為你的開發環境還沒有安裝這兩個模組
點選右鍵執行Debug 'main'後,下方的Debug視窗會出現ImportError: No module named 'bottle'這樣的提示,提示匯入bottle包出錯
所以我們需要先安裝這兩個包,點選下方的Terminal,輸入pip install bottle 回車後開始安裝bottle包
等安裝完成後,同樣的輸入pip install beaker 安裝beaker包
完成後,在main.py檔案視窗中的空白處點右鍵,點選Debug 'main',執行Debug
會發現web服務已經啟動了,埠號是9090
我們開啟瀏覽器,在位址列處輸入http://127.0.0.1:9090/index/ 回車後就可以看到Hello World了
3.程式程式碼說明
#!/usr/bin/evn python
這是標識當前指令碼指定用python來執行它,為了防止使用者沒有將python裝在預設的/usr/bin路徑裡,系統執行時首先會到env設定裡查詢python的安裝路徑,再呼叫對應路徑下的python程式來執行。
# coding=utf-8
這一行說明當前檔案用的是utf-8編碼
from bottle import default_app, get, run
from beaker.middleware import SessionMiddleware
第4與第5行用於匯入bottle包和beaker包的指定模組
由於bottle框架自身並沒有提供Session的支援,所以使用beaker中介軟體來實現。
# 設定session引數
session_opts = {
'session.type': 'file',
'session.cookie_expires': 3600,
'session.data_dir': '/tmp/sessions/simple',
'session.auto': True
}
第7到第13行,是建立一個session配置的字典,用來儲存session的儲存型別為檔案型別,session過期時間為3600秒,session檔案存放路徑為/tmp/sessions/simple (存放在linux系統tmp目錄下的檔案,系統定期會自動清理)
@get('/index/')
def callback():
return 'Hello World!'
第15到17行,我們定義了一個/index/的路由,用於瀏覽器訪問時,可以通過這個路同來定位到這裡(也就是前面瀏覽器輸入url地址,這裡我們可以隨意定義為任何路由都可以),訪問路由的方式我們定義為get方式,當然還可以定義為post、put、delete等訪問路由的方式。
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行,它標識當前位置為程式的主入口,執行程式時,由這裡開始
第21行,初始化session引數
第22行,啟動WSGI WEB程式,地址為本機地址,訪問埠為9090,開始debug,最後有個引數reloader設定專案程式碼有修改時,自動重新啟動web服務,重新載入修改後的程式碼
PS:我們使用的Bottle框架,它是一個快速的,簡單的,非常輕量級的 Python WSGI Web 框架。它只有一檔案,只依賴於 Python 標準庫 。懂英文的可以直接訪問:http://www.bottlepy.org/docs/dev/tutorial.html 檢視bottle開發文件,也可以點選:下載bottle中文文件
python開發QQ群:669058475 作者部落格:http://www.cnblogs.com/EmptyFS/
只有將自己置空,才能裝進更多的東西!我是陳煥,資深IT碼農,愛分享愛學習,一位奔跑在求知路上的踐行者。