最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【四】Flask入門從入門到不放棄來做一些更深入的補(bǔ)充

2020-03-31 15:20 作者:熱心的裴同學(xué)  | 我要投稿

高清無碼pdf見?

鏈接:https://pan.baidu.com/s/1Dpg3G44Ytp5EwGg9CuoI3g

提取碼:gc22

按照慣例先來插入封面


前情回顧

在前三期的內(nèi)容中我們分別介紹了以下內(nèi)容

  • 【一】如何用Python Flask來制作第一個Web程序

    這一期我們安裝了Python Flask框架并且第一次運(yùn)行了一個web程序

    并且說明了修改端口號和監(jiān)聽地址的方法

  • 【二】Flask 中的路由

    這一期我們講了怎么在程序中來構(gòu)造多個訪問路徑,并且說了調(diào)試模式的啟動方法

  • 【三】Flask 中模板的簡單應(yīng)用

    這一期我們簡單介紹了一下flask中使用的jinja2模板的語法和使用場景

現(xiàn)在你可以來構(gòu)造一個web應(yīng)用了

但是只會以上這些是完全不夠的

下面我們就來對以上的內(nèi)容來一次Plus版本的補(bǔ)充

第一個問題,什么是Flask擴(kuò)展

舉個大大的"栗子"來解釋一下下吧

假設(shè)Flask框架是一輛車,這輛車非常的撿漏,但是他還是具備正常的行駛功能的

什么是Flask擴(kuò)展呢?

擴(kuò)展就相當(dāng)于車上的各種配件

你可以用這些配件來完善這輛車的各種功能

你可以很自由的選擇你要用的擴(kuò)展,當(dāng)然你也可以不使用

附上靈魂插畫

擴(kuò)展是圍繞Flask作為核心來編寫的,所以說大部分?jǐn)U展只能用在Flask中

大部分的擴(kuò)展用來集成其他庫,作為Flask與其他庫之間薄薄的一層膠水

因?yàn)镕lask擴(kuò)展的編寫有一些約定,所以初始化的過程大致 相似。大部分?jǐn)U展都會提供一個擴(kuò)展類,實(shí)例化這個類,并傳入我們創(chuàng) 建的程序?qū)嵗齛pp作為參數(shù),即可完成初始化過程。通常,擴(kuò)展會在傳 入的程序?qū)嵗献砸恍┨幚砗瘮?shù),并加載一些配置。

?

項目配置


在很多情況下,你需要設(shè)置程序的某些行為,這時你就需要使用配置變量。

在Flask中,配置變量就是一些大寫形式的Python變量,你也可 以稱之為配置參數(shù)或配置鍵。使用統(tǒng)一的配置變量可以避免在程序中以 硬編碼的形式設(shè)置程序。 在一個項目中,你會用到許多配置:Flask提供的配置,擴(kuò)展提供的 配置,還有程序特定的配置。和平時使用變量不同,這些配置變量都通 過Flask對象的app.config屬性作為統(tǒng)一的接口來設(shè)置和獲取,它指向的 Config類實(shí)際上是字典的子類,所以你可以像操作其他字典一樣操作 它。

app.config['DEBUG'] = True

如果你想一下子來設(shè)置好多個配置信息你可以使用update()方法


app.config.update(

? ?TESTING=True,

? ?SECRET_KEY='balabala')

你也可以直接取出來一個配置信息

value = app.config['ADMIN_NAME']


URL與端點(diǎn)


在Web程序中,URL無處不在。如果程序中的URL都是以硬編碼的 方式寫出,那么將會大大降低代碼的易用性。比如,當(dāng)你修改了某個路 由的URL規(guī)則,那么程序里對應(yīng)的URL都要一個一個進(jìn)行修改。更好的 解決辦法是使用Flask提供的url_for()函數(shù)獲取URL,當(dāng)路由中定義的 URL規(guī)則被修改時,這個函數(shù)總會返回正確的URL。

調(diào)用url_for()函數(shù)時,第一個參數(shù)為端點(diǎn)(就是要去到的那個路徑)值。在 Flask中,端點(diǎn)用來標(biāo)記一個視圖函數(shù)以及對應(yīng)的URL規(guī)則。端點(diǎn)的默認(rèn) 值為視圖函數(shù)的名稱,至于為什么不直接使用視圖函數(shù)名,而要引入端 點(diǎn)這個概念,我們會在后面了解。

加入我們有一個這樣的視圖函數(shù)

@app.route('/hello/<name>')

def greet(name):

? ? return 'Hello %s!' % name

那我們就可以使用這樣的語句來生成去到他的路徑,name及后面所帶的參數(shù)

url_for('say_hello',name='Jack')

我們使用url_for()函數(shù)生成的URL是相對URL(即內(nèi)部URL), 即URL中的path部分,比如“/hello”,不包含根URL。相對URL只能在程 序內(nèi)部使用。如果你想要生成供外部使用的絕對URL,可以在使用 url_for()函數(shù)時,將_external參數(shù)設(shè)為True,這會生成完整的URL,


Flask 命令


有誒有想過,為什么我們執(zhí)行flask run就會啟動一個flask服務(wù)器呢?

下面你就會知道答案了

除了Flask內(nèi)置的flask run等命令,我們也可以自定義命令。在虛擬 環(huán)境安裝Flask后,包含許多內(nèi)置命令的flask腳本就可以使用了。在前面 我們已經(jīng)接觸了很多flask命令,比如運(yùn)行服務(wù)器的flask run,啟動shell 的flask shell。

通過創(chuàng)建任意一個函數(shù),并為其添加app.cli.command()裝飾器, 我們就可以注冊一個flask命令

@app.cli.command()

def hello():

? ? click.echo('Hello, Human!')

函數(shù)的名稱即為命令名稱,這里注冊的命令即hello,你可以使用 flask hello命令來觸發(fā)函數(shù)。作為替代,你也可以在app.cli.command() 裝飾器中傳入?yún)?shù)來設(shè)置命令名稱,比如app.cli.command('say-hello') 會把命令名稱設(shè)置為say-hello,完整的命令即flask say-hello。

借助click模塊的echo()函數(shù),我們可以在命令行界面輸出字符。 命令函數(shù)的文檔字符串則會作為幫助信息顯示(flask hello--help)。在 命令行下執(zhí)行flask hello命令就會觸發(fā)這個hello()函數(shù):

模板與靜態(tài)文件


在第三期的時候我們介紹了Jinja2模板的使用,

我們 需要模板(template)和靜態(tài)文件(static file)來生成更加豐富的網(wǎng)頁。 模板即包含程序頁面的HTML文件,靜態(tài)文件則是需要在HTML文件中 加載的CSS和JavaScript文件,以及圖片、字體文件等資源文件。默認(rèn)情 況下,模板文件存放在項目根目錄中的templates文件夾中,靜態(tài)文件存 放在static文件夾下,這兩個文件夾需要和包含程序?qū)嵗哪K處于同一 個目錄下,對應(yīng)的項目結(jié)構(gòu)示例如下所示:

helloflask/

- templates/

- static/

- app.py

我們把需要用到的js文件和css文件放到static文件夾

那現(xiàn)在如何引用這些文件呢

為了在HTML文件中引用靜態(tài)文件,我們需要使用url_for()函數(shù) 獲取靜態(tài)文件的URL。Flask內(nèi)置了用于獲取靜態(tài)文件的視圖函數(shù),端點(diǎn) 值為static,它的默認(rèn)URL規(guī)則為/static/,URL變量 filename是相對于static文件夾根目錄的文件路徑。

<img src="{{ url_for('static', filename='avatar.jpg') }}" width="50">

引入一個css

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename= 'styles.css' ) }}">

或者引入靜態(tài)的Bootstrap資源

<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script><script src="{{ url_for('static', filename='js/popper.min.js') }}"></script><script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>

這一期就先到這里


下一次我們一起來研究研究模板的進(jìn)階用法





【四】Flask入門從入門到不放棄來做一些更深入的補(bǔ)充的評論 (共 條)

分享到微博請遵守國家法律
乌审旗| 怀化市| 阿拉善左旗| 乐业县| 沂南县| 无极县| 汉阴县| 蒲城县| 余干县| 民乐县| 长宁区| 甘德县| 昌图县| 眉山市| 开封市| 综艺| 苍南县| 社会| 通道| 武胜县| 丹东市| 南华县| 通许县| 眉山市| 两当县| 建瓯市| 武鸣县| 安多县| 青浦区| 磐安县| 麻江县| 胶南市| 温宿县| 内黄县| 辽中县| 萨迦县| 子长县| 昌乐县| 车致| 金塔县| 平乐县|