1. 程式人生 > >python面試總結1(web方向)

python面試總結1(web方向)

1,session和cookie的區別

session儲存在伺服器,cookie儲存在客戶端。

2,,解釋裝飾器和閉包,並分別說明各自應用場景。

閉包:函式和執行環境的整體。

裝飾器:在函式執行過程中動態增加功能。

閉包應用:可以定義裝飾器。

裝飾器應用:給函式新增日誌等。

3,有沒有用過Redis?有沒有用過mongodb?簡要介紹一下。

沒有用過,會去了解。

4,flask中,防止跨站請求偽造的方法,以及實現原理。

在form表單中新增隱藏欄位csrf_token,請求發起後,將cookie中的csrf_token和表單資料中取出的值做對比,值一樣,視為正常請求

5,flask的werkzeug拓展

一個WSGI(Web Server Gateway Interface)庫,用來定義web服務介面規範。相當於一個工具包,可以用它來搭建web伺服器。

6,雜湊演算法

又稱雜湊演算法或hash演算法。 一種壓縮對映,就是把任意長度的輸入(又叫做預對映pre-image)通過雜湊演算法變換成固定長度的輸出。

7,列表和元組,以及元組的應用場景。

列表:有序集合,可變。

元組:有序集合,不可變。應用:函式返回值

8,mysql資料庫的高階用法

知道有事物,索引,但沒有具體應用過。

9,flask中,上下文的應用場景。

程式上下文:(current_app,g)多應用巢狀時,用於確定當前處理哪個應用。

請求上下文:(request,session)利用執行緒隔離,將其在一次請求中設定為全域性變數。

10,flask中資料庫遷移的三個步驟及目的

python manage.py db init        建立遷移倉庫

python XXXX.py db migrate -m "提示資訊"      建立遷移指令碼

python XXXX.py db upgrade       更新至資料庫

11,flask藍圖實現機制

1:在藍圖物件上呼叫route裝飾器註冊路由,在內部的延遲操作記錄列表defered_functions中添加了一個項。
2:執行應用物件的register_blueprint()方法時,應用物件從defered_functions列表中取出每一項,即呼叫應用物件的add_url_rule()方法,最終修改程式例項的路由對映列表

12,介紹MVC和MVT,闡述區別。

MVC:模型(M),控制器(C),檢視(V)

MVT:模型(M),模板(T)檢視(V)
共同點:1,都將業務處理和顯示分開進行。2,model都是資料存取。

不同點:在顯示階段,mvc中view只負責顯示具體內容,而MVT中,由view將資料填充到template中再顯示。

13,介紹http協議。

超文字傳輸協議。應用層協議。

請求由三部分構成:請求行、訊息報頭、請求正文

請求方法有:GET,POST,HEAD,PUT,DELETE等。

響應也由三部分構成:狀態行、訊息報頭、響應正文

響應狀態碼的五種可能取值:

1xx:指示資訊--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受

3xx:重定向--要完成請求必須進行更進一步的操作

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

5xx:伺服器端錯誤--伺服器未能實現合法的請求

14,介紹氣泡排序

從頭開始,遍歷所有元素。比較兩個相鄰的元素,將值大的元素交換至右端,始終將較小的值放在左邊。