第八章 用戶認(rèn)證
8.4使用Flask-Login認(rèn)證用戶
8.4.4登入用戶
示例8-12中的<div class="col-md-4">
,
是bootstrap中的語法。
- col-xs-超小屏幕 手機(jī) (<768px),
- col-sm-小屏幕 平板 (≥768px),
- col-md-中等屏幕 桌面顯示器 (≥992px).
不管在哪種屏幕上,
柵格系統(tǒng)都會(huì)自動(dòng)的分12列。
col-xs-和col-sm- 和col-md-*后面跟的參數(shù),
表示在當(dāng)前的屏幕中 div占的寬度。
8.4.6測(cè)試登錄
示例8-14中,
創(chuàng)建了用戶進(jìn)行提交時(shí),
數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤,
提示數(shù)據(jù)庫(kù)并沒有users這張表,
原因是并沒有用$ python ./manage.py db upgrade
創(chuàng)建數(shù)據(jù)庫(kù)。
在測(cè)試用戶登錄時(shí),
提示bool類型沒有call的方法,
錯(cuò)誤位置是app/templates/base.html
和
app/templates/index.html
。
原因是current_user.is_authencated()
現(xiàn)在是靜態(tài)方法,
把這兩個(gè)模板中的括號(hào)刪除就行。
今天解決了一個(gè)舊問題,
關(guān)于發(fā)送電子郵件時(shí),
出現(xiàn)的init()的參數(shù)應(yīng)該是1到2個(gè),
而不是3個(gè)的問題,
實(shí)際上是validators后面沒有加()調(diào)用。
使用requirement安裝python庫(kù)
pip freeze > requirements.txt
rm -rf <你的virtualenv 文件夾>
使用 virtualenv -p ~/pyenv/python3.x env3.x 來指定創(chuàng)建一個(gè)3.x的env
virtualenv <新的virtualenv 文件夾>
source <新的virtualenv文件夾>/bin/activate
pip install -r requirements.txt
8.6確認(rèn)賬戶
在注冊(cè)時(shí),會(huì)出現(xiàn)一個(gè)錯(cuò)誤。
提示db中并沒有column:db.confirmed。
在命令行執(zhí)行:
$ python manage.py db migrate
$ python manage.py db upgrade
執(zhí)行完畢后一切正常。
在cygwin下,環(huán)境變量似乎無法添加,
后面發(fā)現(xiàn)/home/yourname/.zshrc
中添加會(huì)有效,
在/home/yourname/.bash_profile
中添加無效的原因是,
cygwin默認(rèn)用zsh啟動(dòng),而不是bash。
當(dāng)然現(xiàn)在win10可以用內(nèi)置的ubuntu bash。
出現(xiàn)了奇怪的錯(cuò)誤,
提示激活地址失效或已經(jīng)過期。
其實(shí)是在token生成和驗(yàn)證時(shí),
把confirm拼成了confim.
導(dǎo)入有兩種,
絕對(duì)導(dǎo)入和相對(duì)導(dǎo)入。
相對(duì)導(dǎo)入只能用from import。
8.7管理賬戶
在另一本書里,
提到了一個(gè)有用的調(diào)試工具,
flask-debugtoolbar,
可以通過pip install 安裝。
與其他的插件一樣,
也是可以通過下面的代碼來應(yīng)用到工廠模式。
from flask_debugtoolbar import DebugToolbarExtension
toolbar = DebugToolbarExtension()
toolbar.init_app(app)