Odoo Web前端介面詳解 2

2021-08-15 09:06:25 字數 2306 閱讀 3157

上篇講到,出現登陸介面,在我們輸入使用者名稱密碼之後,odoo又做了什麼,chrome中開發人員模式,看到請求如下

**如下

# web/controllers/main.py:483

# 登陸邏輯,

# 密碼驗證通過之後,返回乙個帶hash的響應,實際上是200響應頭,js實現跳轉到/web

# 在/web route下

# /web/login成功之後的跳轉,session已經有uid, 返回html

request.uid = request.session.uid

try:

# 獲取當前使用者的一些context,包括選單之類的

# 用模板渲染html

response = request.render('web.webclient_bootstrap', qcontext=context)

response.headers['x-frame-options'] = 'deny'

return response

except accesserror:

return werkzeug.utils.redirect('/web/login?error=access')

簡短就是,驗證登陸使用者名稱密碼成功之後,將使用者uid寫入session之中,然後跳轉至/web頁面;/web請求時,獲取使用者的一些context包括能看到的選單等,然後通過模板渲染,最後返回響應。

'web.webclient_bootstrap'模板可以在web/views/webclient_templates.xml:597行找到,通過模板我們可以看到只生成了一些基本的靜態檔案,以及當前登入使用者的所能訪問到的選單。所有具體的頁面內容都是後來由js處理和生成的。

所有的靜態檔案,如果沒有開啟debug=assets的話,都是由ir_qweb.py進行壓縮成單獨的乙個js檔案,當然其實有兩個,乙個是web.assets_common,乙個是web.assets_backend(我們主要就是研究這個咯)

在webclient_templates.xml中找到id=』web.assets_backend』的template,和』web.assets_common』的template。 common裡面匯入一些通用的js檔案,backend的js檔案主要是登入成功後渲染/web裡面內容所單獨需要的。

前端登入介面

培訓第一天 學習了一些靜態頁面的 編寫 text css href bootstrap 3.3.7 dist css bootstrap.min.css rel stylesheet 手機號碼 text name telephone number id telephone number placeh...

前端調取php介面,api介面前端使用

danger 每次訪問介面時,都必須攜帶5個公共引數,如果需要使用者資訊的介面,還需要攜帶cowcms userid引數 建議每個連線都攜帶該引數 引數名稱 引數描述 interval timestamp引數有效時時長 預設7200,單位為秒 timestamp 請求時間戳,該值和當前時間差不能大於...

DVI介面詳解

dvi全稱為digital visual inte ce,是1999年由silicon image intel 英特爾 compaq 康柏 ibm hp 惠普 nec fujitsu 富士通 等公司共同組成的數字顯示工作組 ddwg digital display working group 推出的...