摘要:開發實戰筆記安裝和使用虛擬環境虛擬環境是解釋器的一個私有副本,在這個環境中你可以安裝私有的包,而且不會影響系統中安裝的全局的解釋器。處理和函數之間關系的程序稱為路由。例如在請求開始時,我們需要創建數據庫連接或認證發起請求的用戶。
Flask Web 開發實戰筆記 安裝和使用虛擬環境幾天前和同事一起喝酒,大家談到為什么開始讀書這件事。這里所說的讀書不是專業的書籍,而是一些閑書。結果發現原來我們開始讀書的原因很功利。都是因為生活中遇到了困惑,希望在書中找到答案。
人就是這樣,即便在書中找不到答案。在看書的過程中發現,這個世界上居然有很多人是和我一樣的。我解決不了的問題居然困擾了很多人。當從內而外,推己及人,發現這是一個外部世界普遍的問題,而不是自己本身的能力、性格和承受能力的問題,這時就會相對輕松,至少為自己的偷懶找到了借口。按照羅胖曾經說過的“其實人大多數時候沒有自己的觀點,在人生某一個階段的觀點,不過是對現狀的解釋罷了”
當然說到這里,我自然已經過了那個功利的階段。因為隨著你讀書越多、思考越多、對世界的了解越多,會發現你所面對的未知領域越來越大,而且沒有邊界。轉而因為興趣讀書,似乎才能帶來愉快的體驗。
虛擬環境是Python解釋器的一個私有副本,在這個環境中你可以安裝私有的包,而且不會影響系統中安裝的全局的解釋器。
另外一個好處是,不需要管理員權限。
虛擬環境使用第三方實用工具virtualenv創建
安裝方式略。使用virtualenv創建虛擬環境,虛擬名稱一般為env,當然你可以選擇不同的名字
#創建虛擬環境 virtualenv env #創建完成后,env目錄下出現如下目錄 Include/ Lib/ Scripts/ pip-selfcheck.json tcl/
激活虛擬環境(windows下)
venvScriptsactivate
激活后,提示符變成(venv)$
#激活后就可以直接執行語句,并通過瀏覽器http://127.0.0.1訪問 (venv)$ python hello.py一個完整程序的結構
#初始化 from flask import Flask app = Flask(__name__) #路由和視圖函數 @app.route("/") def index(): return "Hello World!
" #啟動服務器 #debug=True 啟動調試模式 #如果我們想要其他人訪問,可以使用app.run(host=0.0.0.0.0,debug=True) if __name__ == "__main__": app.run(debug=True)
flask類的構造只有一個必須指定的參數,即程序主模塊或包的名字。在大多數程序中,Python的__name__變量就是所需的值。
處理URL和函數之間關系的程序稱為路由。
在Flask程序中定義路由最簡便的方式,是使用程序實例提供的app.route修飾器。
緊隨修飾器之后的函數,我們稱之為視圖函數[index()]。
程序和請求上下文Flask從客戶端收到請求時,要讓視圖函數能夠訪問一些對象,這樣才能處理請求。
那么要想讓視圖函數能夠訪問對象,一個顯而易見的方法是將其作為參數傳入視圖函數。
如你所想,這樣會導致每個視圖函數都要增加一個參數。并且考慮到,如果視圖函數還需要訪問其他對象,那么情況可能更糟。所以,Flask使用上下文臨時的把某些對象變為全局可訪問。
from flask import request @app.route("/") def index(): user_agent= request.headers.get("User-Agent") return "Your browser is %s
" % user-agent
Flask上下文分為程序上下文和請求上下文
Flask在分發請求之前激活程序和請求上下文,請求處理結束后再將其刪除。
程序上下文被推送之后,就可以在線程中使用current_app 和 g 變量
請求上下文被推送后,就額可以使用request和session變量。
請求鉤子有時在處理請求之前或之后執行代碼會很有用。例如在請求開始時,我們需要創建數據庫連接或認證發起請求的用戶。為了避免在每個視圖中都使用重復的代碼,Flask提供了注冊通用函數的功能。
請求鉤子使用修飾器實現。Flask支持以下4中鉤子
before_first_request: 注冊是一個函數,在處理第一個請求之前運行
before_request : 注冊一個函數,在每次請求之前運行
after_request: 注冊一個函數,如果沒有未處理的異常拋出,在每次請求之后運行。
teardown_request:注冊一個函數,即使有未被處理的異常拋出,也在每次請求之后運行。
在請求鉤子函數和視圖函數之間共享數據一般使用上下文全局變量g
例如,before_request處理程序可以從數據庫中加載已登錄用戶,并將其保存到g.user中。
隨后調用視圖函數時,視圖函數在使用g.user獲取用戶。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38217.html
摘要:月份發布了第版,收到不少網友的良好建議,所以又抽空進行了完善,當然也拖了不少時間。本書主要介紹的基本使用,這也是我一開始在學習過程中經常用到的。第章實戰,介紹了如何開發一個簡單的應用。聲明本書由編寫,采用協議發布。 showImg(https://segmentfault.com/img/remote/1460000007484050?w=200&h=152); 書籍地址 head-f...
摘要:試想,在多線程服務器中,多個線程同時處理不同客戶端發送的不同請求時,每個線程看到的對象必然不同。多線程服務器會創建一個線程池,再從線程池中選擇一個線程用于處理接收到的請求。 框架 Django flask flask是一個輕量的web開發應用示例開發一個小應用 from flask import Flask app = Flask(__name__) @app.route(/) d...
摘要:在本書中用到的一些服務程序主要有。本節來分別介紹它們的安裝方法。的安裝是一個輕量級的服務程序,簡單易用靈活,在本書中我們主要用它來做一些服務,本節我們來了解下它的安裝方式。相關鏈接官方文檔安裝執行完畢之后即可完成安裝。 上一篇文章:Python3網絡爬蟲實戰---5、存儲庫的安裝:PyMySQL、PyMongo、RedisPy、RedisDump下一篇文章:Python3網絡爬蟲實戰-...
摘要:簡介是一個輕量級的框架如果要學習開發非常適合作為我們學習的起點通過接下來的這一些列的博客我們將學習如何利用以及其他工具搭建一個簡單的網站開發環境命令如下第一個首先我們創建一個文件夾并在其中新建一個文件接著我們打開按照的示例 簡介 Flask 是一個輕量級的 Web 框架, 如果要學習 Web 開發, Flask 非常適合作為我們學習的起點. 通過接下來的這一些列的博客, 我們將學習如何...
閱讀 2225·2021-09-22 15:25
閱讀 3610·2019-08-30 12:48
閱讀 2197·2019-08-30 11:25
閱讀 2332·2019-08-30 11:05
閱讀 720·2019-08-29 17:28
閱讀 3279·2019-08-26 12:16
閱讀 2602·2019-08-26 11:31
閱讀 1683·2019-08-23 17:08