亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Flask Web 開(kāi)發(fā)實(shí)戰(zhàn)筆記

羅志環(huán) / 3166人閱讀

摘要:開(kāi)發(fā)實(shí)戰(zhàn)筆記安裝和使用虛擬環(huán)境虛擬環(huán)境是解釋器的一個(gè)私有副本,在這個(gè)環(huán)境中你可以安裝私有的包,而且不會(huì)影響系統(tǒng)中安裝的全局的解釋器。處理和函數(shù)之間關(guān)系的程序稱(chēng)為路由。例如在請(qǐng)求開(kāi)始時(shí),我們需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)連接或認(rèn)證發(fā)起請(qǐng)求的用戶。

幾天前和同事一起喝酒,大家談到為什么開(kāi)始讀書(shū)這件事。這里所說(shuō)的讀書(shū)不是專(zhuān)業(yè)的書(shū)籍,而是一些閑書(shū)。結(jié)果發(fā)現(xiàn)原來(lái)我們開(kāi)始讀書(shū)的原因很功利。都是因?yàn)樯钪杏龅搅死Щ?,希望在?shū)中找到答案。

人就是這樣,即便在書(shū)中找不到答案。在看書(shū)的過(guò)程中發(fā)現(xiàn),這個(gè)世界上居然有很多人是和我一樣的。我解決不了的問(wèn)題居然困擾了很多人。當(dāng)從內(nèi)而外,推己及人,發(fā)現(xiàn)這是一個(gè)外部世界普遍的問(wèn)題,而不是自己本身的能力、性格和承受能力的問(wèn)題,這時(shí)就會(huì)相對(duì)輕松,至少為自己的偷懶找到了借口。按照羅胖曾經(jīng)說(shuō)過(guò)的“其實(shí)人大多數(shù)時(shí)候沒(méi)有自己的觀點(diǎn),在人生某一個(gè)階段的觀點(diǎn),不過(guò)是對(duì)現(xiàn)狀的解釋罷了”

當(dāng)然說(shuō)到這里,我自然已經(jīng)過(guò)了那個(gè)功利的階段。因?yàn)殡S著你讀書(shū)越多、思考越多、對(duì)世界的了解越多,會(huì)發(fā)現(xiàn)你所面對(duì)的未知領(lǐng)域越來(lái)越大,而且沒(méi)有邊界。轉(zhuǎn)而因?yàn)榕d趣讀書(shū),似乎才能帶來(lái)愉快的體驗(yàn)。

Flask Web 開(kāi)發(fā)實(shí)戰(zhàn)筆記 安裝和使用虛擬環(huán)境

虛擬環(huán)境是Python解釋器的一個(gè)私有副本,在這個(gè)環(huán)境中你可以安裝私有的包,而且不會(huì)影響系統(tǒng)中安裝的全局的解釋器。
另外一個(gè)好處是,不需要管理員權(quán)限。

虛擬環(huán)境使用第三方實(shí)用工具virtualenv創(chuàng)建

安裝方式略。使用virtualenv創(chuàng)建虛擬環(huán)境,虛擬名稱(chēng)一般為env,當(dāng)然你可以選擇不同的名字

#創(chuàng)建虛擬環(huán)境
virtualenv env
#創(chuàng)建完成后,env目錄下出現(xiàn)如下目錄
Include/  
Lib/  
Scripts/  
pip-selfcheck.json  
tcl/

激活虛擬環(huán)境(windows下)

venvScriptsactivate

激活后,提示符變成(venv)$

#激活后就可以直接執(zhí)行語(yǔ)句,并通過(guò)瀏覽器http://127.0.0.1訪問(wèn)
(venv)$ python hello.py
一個(gè)完整程序的結(jié)構(gòu)
#初始化
from flask import Flask
app = Flask(__name__)

#路由和視圖函數(shù)
@app.route("/")
def index():
    return "

Hello World!

" #啟動(dòng)服務(wù)器 #debug=True 啟動(dòng)調(diào)試模式 #如果我們想要其他人訪問(wèn),可以使用app.run(host=0.0.0.0.0,debug=True) if __name__ == "__main__": app.run(debug=True)

flask類(lèi)的構(gòu)造只有一個(gè)必須指定的參數(shù),即程序主模塊或包的名字。在大多數(shù)程序中,Python的__name__變量就是所需的值。

處理URL和函數(shù)之間關(guān)系的程序稱(chēng)為路由。

在Flask程序中定義路由最簡(jiǎn)便的方式,是使用程序?qū)嵗峁┑腶pp.route修飾器。

緊隨修飾器之后的函數(shù),我們稱(chēng)之為視圖函數(shù)[index()]。

程序和請(qǐng)求上下文

Flask從客戶端收到請(qǐng)求時(shí),要讓視圖函數(shù)能夠訪問(wèn)一些對(duì)象,這樣才能處理請(qǐng)求。
那么要想讓視圖函數(shù)能夠訪問(wèn)對(duì)象,一個(gè)顯而易見(jiàn)的方法是將其作為參數(shù)傳入視圖函數(shù)。
如你所想,這樣會(huì)導(dǎo)致每個(gè)視圖函數(shù)都要增加一個(gè)參數(shù)。并且考慮到,如果視圖函數(shù)還需要訪問(wèn)其他對(duì)象,那么情況可能更糟。所以,F(xiàn)lask使用上下文臨時(shí)的把某些對(duì)象變?yōu)槿挚稍L問(wèn)。

from flask import request

@app.route("/")
def index():
    user_agent= request.headers.get("User-Agent")
    return "

Your browser is %s

" % user-agent

Flask上下文分為程序上下文和請(qǐng)求上下文

Flask在分發(fā)請(qǐng)求之前激活程序和請(qǐng)求上下文,請(qǐng)求處理結(jié)束后再將其刪除。

程序上下文被推送之后,就可以在線程中使用current_app 和 g 變量

請(qǐng)求上下文被推送后,就額可以使用request和session變量。

請(qǐng)求鉤子

有時(shí)在處理請(qǐng)求之前或之后執(zhí)行代碼會(huì)很有用。例如在請(qǐng)求開(kāi)始時(shí),我們需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)連接或認(rèn)證發(fā)起請(qǐng)求的用戶。為了避免在每個(gè)視圖中都使用重復(fù)的代碼,F(xiàn)lask提供了注冊(cè)通用函數(shù)的功能。

請(qǐng)求鉤子使用修飾器實(shí)現(xiàn)。Flask支持以下4中鉤子

before_first_request: 注冊(cè)是一個(gè)函數(shù),在處理第一個(gè)請(qǐng)求之前運(yùn)行

before_request : 注冊(cè)一個(gè)函數(shù),在每次請(qǐng)求之前運(yùn)行

after_request: 注冊(cè)一個(gè)函數(shù),如果沒(méi)有未處理的異常拋出,在每次請(qǐng)求之后運(yùn)行。

teardown_request:注冊(cè)一個(gè)函數(shù),即使有未被處理的異常拋出,也在每次請(qǐng)求之后運(yùn)行。

在請(qǐng)求鉤子函數(shù)和視圖函數(shù)之間共享數(shù)據(jù)一般使用上下文全局變量g
例如,before_request處理程序可以從數(shù)據(jù)庫(kù)中加載已登錄用戶,并將其保存到g.user中。
隨后調(diào)用視圖函數(shù)時(shí),視圖函數(shù)在使用g.user獲取用戶。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/38217.html

相關(guān)文章

  • 我的第一本 gitbook: Flask Web 開(kāi)發(fā)筆記

    摘要:月份發(fā)布了第版,收到不少網(wǎng)友的良好建議,所以又抽空進(jìn)行了完善,當(dāng)然也拖了不少時(shí)間。本書(shū)主要介紹的基本使用,這也是我一開(kāi)始在學(xué)習(xí)過(guò)程中經(jīng)常用到的。第章實(shí)戰(zhàn),介紹了如何開(kāi)發(fā)一個(gè)簡(jiǎn)單的應(yīng)用。聲明本書(shū)由編寫(xiě),采用協(xié)議發(fā)布。 showImg(https://segmentfault.com/img/remote/1460000007484050?w=200&h=152); 書(shū)籍地址 head-f...

    KevinYan 評(píng)論0 收藏0
  • Python學(xué)習(xí)筆記:Web后端開(kāi)發(fā)一覽

    摘要:試想,在多線程服務(wù)器中,多個(gè)線程同時(shí)處理不同客戶端發(fā)送的不同請(qǐng)求時(shí),每個(gè)線程看到的對(duì)象必然不同。多線程服務(wù)器會(huì)創(chuàng)建一個(gè)線程池,再?gòu)木€程池中選擇一個(gè)線程用于處理接收到的請(qǐng)求。 框架 Django flask flask是一個(gè)輕量的web開(kāi)發(fā)應(yīng)用示例開(kāi)發(fā)一個(gè)小應(yīng)用 from flask import Flask app = Flask(__name__) @app.route(/) d...

    DrizzleX 評(píng)論0 收藏0
  • Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---6、Web庫(kù)的安裝:Flask、Tornado

    摘要:在本書(shū)中用到的一些服務(wù)程序主要有。本節(jié)來(lái)分別介紹它們的安裝方法。的安裝是一個(gè)輕量級(jí)的服務(wù)程序,簡(jiǎn)單易用靈活,在本書(shū)中我們主要用它來(lái)做一些服務(wù),本節(jié)我們來(lái)了解下它的安裝方式。相關(guān)鏈接官方文檔安裝執(zhí)行完畢之后即可完成安裝。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)---5、存儲(chǔ)庫(kù)的安裝:PyMySQL、PyMongo、RedisPy、RedisDump下一篇文章:Python3網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)-...

    yeyan1996 評(píng)論0 收藏0
  • Web 開(kāi)發(fā)學(xué)習(xí)筆記(1) --- 搭建你的第一個(gè) Web Server

    摘要:簡(jiǎn)介是一個(gè)輕量級(jí)的框架如果要學(xué)習(xí)開(kāi)發(fā)非常適合作為我們學(xué)習(xí)的起點(diǎn)通過(guò)接下來(lái)的這一些列的博客我們將學(xué)習(xí)如何利用以及其他工具搭建一個(gè)簡(jiǎn)單的網(wǎng)站開(kāi)發(fā)環(huán)境命令如下第一個(gè)首先我們創(chuàng)建一個(gè)文件夾并在其中新建一個(gè)文件接著我們打開(kāi)按照的示例 簡(jiǎn)介 Flask 是一個(gè)輕量級(jí)的 Web 框架, 如果要學(xué)習(xí) Web 開(kāi)發(fā), Flask 非常適合作為我們學(xué)習(xí)的起點(diǎn). 通過(guò)接下來(lái)的這一些列的博客, 我們將學(xué)習(xí)如何...

    calx 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<