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

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

【Flask】PythonWeb之Flask框架配置管理

2022-07-19 14:57 作者:騰科IT教育官方賬號  | 我要投稿

?前言:

在學(xué)習(xí)Falsk框架的時(shí)候發(fā)現(xiàn)了網(wǎng)上資源比較繁雜,而涉及到工程項(xiàng)目的文件配置和管理也是各有千秋。所以花了點(diǎn)時(shí)間專門整理一個(gè)配置項(xiàng)目工程目錄的文章,本篇文章從最初始化最簡潔的Flask安裝樣例出發(fā),從零開始編寫代碼和配置文件,旨在幫助本人以及廣大讀者理解項(xiàng)目目錄文件之間的關(guān)系。?

那么接下來就讓我們進(jìn)入到flask目錄配置的學(xué)習(xí)中。

首先這里我選擇pycharm進(jìn)行開發(fā),毋庸置疑,pycharm是最好最流行的Python IDE,功能強(qiáng)大,方便實(shí)用。借助于使用virtualenv創(chuàng)建好的虛擬環(huán)境,開始創(chuàng)建一個(gè)新的python空項(xiàng)目(這里不選擇直接使用flask框架創(chuàng)建項(xiàng)目)。

創(chuàng)建好一個(gè)空項(xiàng)目后,由我們自己手動(dòng)新建各部分所需文件目錄,并編寫原始代碼。在這之前,我們先來了解一下Flask程序的默認(rèn)(初始)結(jié)構(gòu)。


Flask框架默認(rèn)(初始)項(xiàng)目結(jié)構(gòu)

app.py

創(chuàng)建一個(gè)app.py 文件之后,寫下上面的代碼,點(diǎn)擊運(yùn)行??梢缘玫揭韵陆缑?。

現(xiàn)在我們來編寫一些配置所需要的代碼。


1.在單一文件中構(gòu)建所有依賴工具

manage.py


2.(自定義)創(chuàng)建工程目錄

在實(shí)際生產(chǎn)中,我們將單一配置文件中的依賴工具和功能提取抽離出來,寫到不同的模塊中,便于代碼的管理和復(fù)用

2.1 第一次抽取

(1)第一次的抽取,先用工廠模式將app的創(chuàng)建抽離出來,并分匹配【配置模式】,將【配置模式】作為 類 來傳遞

config.py

(2)第一次抽取后的manage.py 文件還剩下

manage.py


2.2 第二次抽取

(1)第二次抽取,首先在項(xiàng)目根目錄創(chuàng)建一個(gè)新的 文件夾app,在app文件夾下創(chuàng)建--init--.py、models.py、views.py文件。

(2)將工廠模式函數(shù)create_app復(fù)制到--init--.py文件,同時(shí)將 數(shù)據(jù)庫初始化/實(shí)例化 app應(yīng)用程序的代碼抽離過來,如下:

(3)此時(shí)有一個(gè)問題,db = SQLAlchemy(app) 中 app還沒有被創(chuàng)建,當(dāng)然我們可以導(dǎo)入manage模塊來解決這個(gè)問題,如下

但這樣很明顯就失去了一開始想要分隔抽離代碼功能的作用,所以這里采用以下方法解決:

先創(chuàng)建SQLAlchemy對象,但不進(jìn)行賦值,而后在工廠函數(shù)中進(jìn)行賦值。

——init——.py

manage.py

2.3 第三次抽取

(1)這里將redis連接對象也抽取到--init--.py文件中,和上一個(gè)抽取中的db一樣,其他模塊中的代碼也會(huì)使用到redis,所以這里db、redis不能放在工廠函數(shù)中,否則會(huì)導(dǎo)致其他模塊導(dǎo)包是無法導(dǎo)入。

(2)設(shè)置全局變量redis_store = None,然后在工廠函數(shù)中再進(jìn)行初始化。

2.4 第四次抽取

(1)第四次抽取,將session和csrf兩個(gè)功能同樣抽取到--init--.py文件中,因?yàn)閟ession和csrf是Flask的補(bǔ)充功能,在程序執(zhí)行中只需要初始化一次以修改 flask機(jī)制或引入該功能,初始化對象后,后續(xù)操作直接在視圖函數(shù)中使用flask自己的全局對象session和flask_wtf中csrf生成的內(nèi)容就可以了,并不使用Session(app)、CSRFProtect(app)對象。

因此,將Session(app)、CSRFProtect(app)對象直接寫在工廠函數(shù)中,創(chuàng)建時(shí)初始化一次就可以了。

manage.py

--init--.py

好了,到此將項(xiàng)目目錄文件的一些基本配置完成了。接下來需要引入Flask藍(lán)圖的概念,繼續(xù)進(jìn)行代碼分離,以及一些需要修改的地方,且放到下一篇文章來講。

【Flask】PythonWeb之Flask框架配置管理的評論 (共 條)

分享到微博請遵守國家法律
博客| 七台河市| 赤水市| 社会| 北安市| 九江县| 镇远县| 横山县| 册亨县| 璧山县| 祁东县| 高邑县| 温宿县| 韩城市| 屏山县| 菏泽市| 望奎县| 保亭| 璧山县| 酉阳| 公主岭市| 鹿泉市| 靖边县| 朔州市| 和政县| 内乡县| 本溪| 施秉县| 延边| 任丘市| 茶陵县| 东光县| 兴城市| 桂平市| 曲阳县| 潜江市| 保亭| 乌鲁木齐县| 巴林右旗| 绥江县| 宽城|