小白中午聽完老菜講的那些話後一直在思考,可想來想去仍是一頭霧水,暈暈呼呼的只知其一;不知其二,到最後仍是想不明白,心想:老大講的過高深了,只能聽懂一半半,看來只能先記下來,將明白的先作,不明白的等之後遇到再學。html
到晚上下班後回到家裏,打開電腦開始寫起代碼來......(傳送門: python開發環境搭建 )python
要寫一個web服務,首先要作的就是實現程序的入口,因此先來個Hello World吧linux
1.建立項目web
先在電腦建立這個目錄 E:\Python\simple\code (必定要全英文,由於IDE有可能不支持中文路徑),而後運行IDE軟件:PyCharm瀏覽器
點擊菜單File,而後點擊Open,彈出Open File or Porject窗口,在窗口中選擇剛纔建立的目錄後,點擊OKcookie
而後項目列表中就多出了一個項目session
2.建立主入口文件app
對項目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 import SessionMiddleware 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中文文檔
版權聲明:本文原創發表於 博客園,做者爲 AllEmpty 本文歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然視爲侵權。
python開發QQ羣:669058475(本羣已滿)、733466321(能夠加2羣) 做者博客:http://www.cnblogs.com/EmptyFS/