7 留言板
這是一個簡單的程序,涉及到的大部分是之前所學(xué)習(xí)到的基礎(chǔ)知識。新涉及的python包:
- BootStrap-Flask,Flask-Moment,Faker,Flask-Debug Toolbar。
Git:
git checkout package # 簽出版本
git tag -n # 列出項目包含的所有標(biāo)簽
7.1 使用包組織代碼
將大量代碼放到app.py
一個文件里,代碼的管理會不太方便,可讀性也差。本節(jié)將使用一種新的代碼結(jié)構(gòu)
- sayhello
- __init__.py
- templates/
- static/
- views.py
- forms.py
- models.py
- settings.py
- manage.py
- .flaskenv
...
導(dǎo)入配置:可以從python文件導(dǎo)入
app.config.from_pyfile('settings.py')
7.2 Web開發(fā)流程
一個Web程序通常的開發(fā)流程如下:
- 分析需求
- 設(shè)計程序功能
- 開發(fā)與測試的迭代
- 調(diào)試和性能等專項測試
- 部署上線
- 運維與營銷
目前我的開發(fā)流程是不規(guī)范的,喜歡早早地開始寫代碼。
1、前端開發(fā)流程:草圖 --> 交互式原型圖 --> 前端頁面。
原型設(shè)計工具有Axure RP,Mockplus。(有點感覺原型設(shè)計這一步多余,對于我這種個人開發(fā)而言)
2、后端開發(fā)流程:數(shù)據(jù)建模 --> 表單類 --> 視圖函數(shù) --> 模板。
(我經(jīng)常先寫的模板)
URL片段:如
#bottom
,可以實現(xiàn)頁內(nèi)位置跳躍。
7.3 使用Bootstrap-Flask
內(nèi)置了可以快速渲染Bootstrap樣式HTML組件的宏,并提供了內(nèi)置的Bootstrap資源。(p206)
1、擴(kuò)展初始化
from flask_bootstrap import Bootstrap
bootstrap = Bootstrap(app)
2、加載資源文件
在FLASK_ENV為development時,將自動使用本地資源。
BOOTSTRAP_SERVE_LOCAL=True # 設(shè)置使用本地資源
{{ bootstrap.load_css() }}
{{ bootstrap.load_js() }}
CDN:Content Delovery Network,內(nèi)容分發(fā)網(wǎng)絡(luò)
3、快捷渲染表單
如宏render_form()
可以快捷渲染整個表單。
<div class="hello-form">
{{ render_form(form), action=request.full_path }}
</div>
疑惑:這個
action
怎么在小括號外面,沒有輸錯嗎?
render_form常用參數(shù):(p208)
Bootstrap-Flask內(nèi)置的常用宏:(p208)
7.4 Flask-Moment本地化日期和時間
服務(wù)器提供純正的時間(native time),即不包含時區(qū)信息的時間戳,如datetime.utcnow()
。然后再瀏覽器通過JavaScript顯示本地的時間。
1、加載資源
需要從Moment.js官網(wǎng)下載資源到static文件夾(如果不從CDN加載資源)。
{{ moment.include_moment() }} {# 默認(rèn)從cdn加載資源 #}
{{ moment.include_moment(local_js=url_for(...)) }} {# 從本地加載 #}
還可以設(shè)置顯示時間的語言(p210)。
2、功能
Moment.js提供了多種時間格式化的方式(p211)
還支持輸出相對時間(p211)
7.5 使用Faker生成虛擬數(shù)據(jù)
可以使用對于的虛擬數(shù)據(jù)類別來獲取虛擬數(shù)據(jù),每次調(diào)用可以得到不同的結(jié)果。此外,它也提供了中文數(shù)據(jù)支持。
7.6 Flask_DebugToolbar調(diào)試程序
可以用來查看請求的SQL語句、配置選項、資源加載情況等信息(?用來干嘛)。也可以幫助進(jìn)行性能分析。
7.7 Flask配置的兩種組織形式
再開發(fā)和部署時通常需要不同的配置,例如需要連接到不同的數(shù)據(jù)庫。建議通過環(huán)境變量保存配置,以便分離配置和程序。環(huán)境變量可以存儲在.flaskenv
或者.env
中。
Flask支持建立一個instance
文件夾(實例文件夾,我也不知道為什么叫這個名字),用來存放配置。然后,你可以用它來覆蓋通用配置(重復(fù)配置項后者覆蓋前者)。
app = Flask(__name__, instance_relative_config=True)
app.config_from_object('config') # 通用配置
app.config.from_pyfile('config.py') # instance文件夾下的配置
其中instance_relative_config
參數(shù)告訴Flask我們配置文件的路徑是相對于instance文件夾的。
注:
flask_shell
命令會輸出instance
文件夾合適的位置。疑惑:這里的通用配置是從哪里加載的?從“環(huán)境變量”嗎?
小結(jié)
這一節(jié)的內(nèi)容確實比較簡單,介紹了一些項目開發(fā)過程中的流程和工具。最后的SayHello項目,頁面給人一種簡潔而美觀之感,這是我所做不到的。(常常感覺自己寫出來的頁面有點丑)文章來源:http://www.zghlxwxcb.cn/news/detail-703616.html
大部分工具我暫時都還沒有去嘗試它們,看以后什么時候會需要吧。文章來源地址http://www.zghlxwxcb.cn/news/detail-703616.html
到了這里,關(guān)于Flask狼書筆記 | 07_留言板的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!