Flask Web 開發 使用者資料

2021-07-22 07:48:16 字數 2491 閱讀 6258

進入第10章了,看到群裡其他筒子已經完成在伺服器上的部署並上線了,好生羨慕。

這一章節的內容是講使用者資料的,比如我們平時註冊乙個**以後,總有乙個頁面是讓我們修改自我介紹,城市,還能顯示註冊時間,最後一次登入等資訊

既然講到以上這些,那我們肯定要在模型裡面多加一些資訊了

如下

class user(usermixin,db.model):

#...

name = db.column(db.string(64))

location = db.column(db.string(64))

about_me = db.column(db.text())

member_since = db.column(db.datetime(),default = datetime.utcnow)

last_seen = db.column(db.datetime(),default = datetime.utcnow)

注意到about_me的型別是text,和平時的string有區別,主要區別是string是有長度限制的,text無限制

新新增的字段儲存使用者的真實姓名、所在地、自我介紹、註冊日期和最後訪問日期。

兩個時間戳的預設值都是當前時間。注意,datetime.utcnow 後面沒有(),因為db.column()的default引數可以接受函式作為預設值,所以每次需要生成預設值時,db.column() 都會呼叫指定的函式。member_since 欄位只需要預設值即可。

last_seen字段建立時的初始值也是當前時間,但使用者每次訪問**後,這個值都會被重新整理。我們可以在user 模型中新增乙個方法完成這個操作

class user(usermixin, db.model):

# ...

def ping(self):

self.last_seen = datetime.utcnow() #呼叫此方法的作用是重新整理last_seen屬性,顯示為登入時間

db.session.add(self)

def before_request():

if current_user.is_authenticated:

current_user.ping() #如果當前使用者是已經授權的,那麼就呼叫ping方法來重新整理last_seen屬性

if not current_user.confirmed \ #而使用者confirmed屬性沒有的話,則進行下面語句的判斷

and request.endpoint[:5] !='auth.':

return redirect(url_for('auth.unconfirmed'))

根據每個不同使用者,會顯示不同的資料顯示頁面

@main.route('/user/')

def user(username):

user = user.query.filter_by(username = username).first()

if user is none: #如果根據使用者名稱沒有找到此使用者的話,則報錯404

abort (404)

return render_template('user.html',user = user) #如果能找到使用者,則渲染的模板用user.html

好,路由設定好了以後,就該來看模板裡面的內容如何寫了

flasky

}                 

}

}

from

}

}

}

member since }.

last seen }.

上面的模板裡面,千萬有乙個要記住,你要用moment功能的時候,你必須要新增super script的用法,作者不知道是不是故意的,漏寫了來考讀者........

}                 

}基本上目前所有的**,使用者都會有乙個按鈕來進入資料設定的頁面,所以,我們也是要在基礎頁面上新增乙個按鈕

所以base.html的新增修改如下

profile

把資料頁面的鏈結包含在條件語句中是非常必要的,因為未認證的使用者也能看到導航條,但我們不應該讓他們看到資料頁面的鏈結。

匯入匯出使用者資料

首先在要匯入資料的資料庫中建立乙個與原資料庫中使用者名稱相同的使用者,在匯出資料前確定要匯出使用者的各個資料表中資料不為空。新建使用者後要授予其connect,resource權利,運用sys登入資料庫,授權 如下 sqlplus sys passwd test as sysdba sql gran...

jsp使用者資料儲存

一 session儲存使用者名稱 我們在上網的時候,經常遇到這種情況 註冊成功之後自動登入 登入後記住了使用者的狀態,並在多個頁面顯示使用者名稱 其實這些效果是使用了session的乙個內建物件,這個內建物件也稱為會話 簡單的說,我們在使用瀏覽器訪問伺服器的時候,與伺服器產生了通話 使用會話可以使我...

使用者資料分析模型

大智 jack.lee312 gmail.com 2007 11 13 在開始進行使用者分類之前,面對的是乙個未知的資料庫,不知道哪些人使用得多?哪些人使用得少?多的多多少?少的少多少?多多少才算多?少多少才算少?不把這些概念轉化成準確資料支援的清晰認識,就不可能把握產品執行和使用者使用的現狀,也就...