我的第一個python web開發框架(6)——第一個Hello World


  小白中午聽完老菜講的那些話后一直在思考,可想來想去還是一頭霧水,暈暈呼呼的一知半解,到最后還是想不明白,心想:老大講的太高深了,只能聽懂一半半,看來只能先記下來,將明白的先做,不明白的等以后遇到再學。

  到晚上下班后回到家里,打開電腦開始寫起代碼來......(傳送門: python開發環境搭建 )

 

  要寫一個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 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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM