Python面試題(七)
1.django請求的生命周期?
1.wsgi,請求封裝後交給web框架 (Flask、Django)
2.中間件,對請求進行校驗或在請求對象中添加其他相關數據,例如:csrf、request.session -
3.路由匹配 根據瀏覽器發送的不同url去匹配不同的視圖函數
4.視圖函數,在視圖函數中進行業務邏輯的處理,可能涉及到:orm、templates => 渲染 -
5.中間件,對響應的數據進行處理。
6.wsgi,將響應的內容發送給瀏覽器。
2.列舉django中間件的5個方法?
1.process_request : 請求進來時,權限認證
2.process_view : 路由匹配之後,能夠得到視圖函數
3.process_exception : 異常時執行
4.process_template_responseprocess : 模板渲染時執行
5.process_response : 請求有響應時執行
3.. 列舉Http請求中常見的請求頭?
1. Host (主機和端口號)
2. Connection (鏈接類型)
3. Upgrade-Insecure-Requests (升級為 HTTPS 請求)
4. User-Agent (瀏覽器名稱)
5. Accept (傳輸文件類型)
6. Referer (頁面跳轉處)
7. Accept-Encoding(文件編解碼格式)
8. Cookie (Cookie)
9. x-requested-with :XMLHttpRequest (是 Ajax 異步請求)
http 請求中的常用頭(請求頭)的含義:
Accept:告訴服務器,客戶端支持的數據類型。
Accept-Charset:告訴服務器,客戶端采用的編碼。
Accept-Encoding:告訴服務器,客戶機支持的數據壓縮格式。
Accept-Language:告訴服務器,客戶機的語言環境。
Host:客戶機通過這個頭告訴服務器,想訪問的主機名。
If-Modified-Since:客戶機通過這個頭告訴服務器,資源的緩存時間。
Referer:客戶機通過這個頭告訴服務器,它是從哪個資源來訪問服務器的。(一般用於防盜鏈)
User-Agent:客戶機通過這個頭告訴服務器,客戶機的軟件環境。
Cookie:客戶機通過這個頭告訴服務器,可以向服務器帶數據。
cookie 是臨時文件的意思,保存你瀏覽網頁的痕跡,使得再次上同一頁面的時候提高網速,判斷你 是否登錄過這個網站,有些可以幫你自動登錄的。
Cookie 就是服務器暫存放在你的電腦裏的資料(.txt 格式的文本文件),通過在 HTTP 傳輸中的狀態好 讓服務器用來辨認你的計算機。當你在瀏覽網站的時候,Web 服務器會先送一小小資料放在你的計算 機上,Cookie 會幫你在網站上所打的文字或是一些選擇都記錄下來。當下次你再訪問同一個網站,Web 服務器會先看看有沒有它上次留下的 Cookie 資料,有的話,就會依據 Cookie 裏的內容來判斷使用者, 送出特定的網頁內容給你。
http 請求是指從客戶端到服務器端的請求消息。包括:消息首行中,對資源的請求方法、資源的標 識符及使用的協議。
Connection:客戶機通過這個頭告訴服務器,請求完後是關閉還是保持鏈接。 Date:客戶機通過這個頭告訴服務器,客戶機當前請求時間。
http 請求中常用的響應頭的含義:
Location:這個頭配合 302 狀態碼使用,告訴用戶端找誰。
Server:服務器通過這個頭,告訴瀏覽器服務器的類型
Content-Encoding:服務器通過這個頭,告訴瀏覽器數據采用的壓縮格式。
Content-Length:服務器通過這個頭,告訴瀏覽器回送數據的長度。
Content-Language:服務器通過這個頭,告訴服務器的語言環境
Content-Type:服務器通過這個頭,回送數據的類型 Last-Modified:服務器通過這個頭,告訴瀏覽器當前資源的緩存時間。
Refresh:服務器通過這個頭,告訴瀏覽器隔多長時間刷新一次。
Content-Disposition:服務器通過這個頭,告訴瀏覽器以下載的方式打開數據。
Transfer-Encoding:服務器通過這個頭,告訴瀏覽器數據的傳送格式。
ETag:與緩存相關的頭。
Expires:服務器通過這個頭,告訴瀏覽器把回送的數據緩存多長時間。-1 或 0 不緩存。
Cache-Control 和 Pragma:服務器通過這個頭,也可以控制瀏覽器不緩存數據。
Connection:服務器通過這個頭,響應完是保持鏈接還是關閉鏈接。
Date:告訴客戶機,返回響應的時間。
4.Flask框架依賴組件?
Route(路由)
templates(模板)
Models(orm模型)
blueprint(藍圖)
Jinja2模板引擎
5. Flask-WTF以及它們的特點是什麽?
Flask-WTF提供與WTForms的簡單集成。功能包括Flask WTF
與wtforms集成
使用CSRF令牌保護表單
全球CSRF保護
國際化整合
驗證碼支持
文件上傳適用於Flask上傳
6.Python 主要的內置數據類型都有哪些?
Python 主要的內置數據類型有:str,int,float,tuple,list,dict,set。
(布爾類型、數字、字符串、列表、元組、字典、集合)
7.read、 readline 和 readlines 的區別?
read:讀取整個文件。
readline:讀取下一行,使用生成器方法。
readlines:讀取整個文件到一個叠代器以供我們遍歷。
Python面試題(七)