日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pythonweb开发面试_Python web 面试题(一)

發(fā)布時間:2023/12/10 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonweb开发面试_Python web 面试题(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、列舉django的內(nèi)置組件?

url 、view、model、template、中間件

2、列舉django中間件的5個方法?以及django中間件的應(yīng)用場景?

process_request(self,request)

process_view(self, request, callback, callback_args, callback_kwargs)

process_exception(self, request, exception)

process_response(self, request, response)

3、django請求的生命周期?

前端請求—>nginx—>uwsgi.—>中間件—>url路由—->view試圖—>orm—->拿到數(shù)據(jù)返回給view—->試圖將數(shù)據(jù)渲染到模版中拿到字符串—->中間件—>uwsgi—->nginx—->前端渲染

4、django的request對象是在什么時候創(chuàng)建的?

當請求一個頁面時,Django會建立一個包含請求元數(shù)據(jù)的 HttpRequest 對象。 當Django 加載對應(yīng)的視圖時,HttpRequest 對象將作為視圖函數(shù)的第一個參數(shù)。每個視圖會返回一個HttpResponse 對象。

5、only和defer的區(qū)別?

defer : 映射中排除某列數(shù)據(jù)

only : 僅取某個列中的數(shù)據(jù)

6、select_related和prefetch_related的區(qū)別?

select_related 通過多表join關(guān)聯(lián)查詢,一次性獲得所有數(shù)據(jù),通過降低數(shù)據(jù)庫查詢次數(shù)來提升性能,但關(guān)聯(lián)表不能太多,因為join操作本來就比較消耗性能

prefetch_related() 的解決方法是,分別查詢每個表,然后用Python處理他們之間的關(guān)系! 都是為了減少SQL查詢的數(shù)量

7、values和values_list的區(qū)別?

values方法可以獲取number字段的字典列表。

values_list可以獲取number的元組列表。

values_list方法加個參數(shù)flat=True可以獲取number的值列表。

8、django中csrf的實現(xiàn)機制?

Django預(yù)防CSRF攻擊的方法是在用戶提交的表單中加入一個csrftoken的隱含值,這個值和服務(wù)器中保存的csrftoken的值相同,這樣做的原理如下:

1、在用戶訪問django的可信站點時,django反饋給用戶的表單中有一個隱含字段csrftoken,這個值是在服務(wù)器端隨機生成的,每一次提交表單都會生成不同的值

2、當用戶提交django的表單時,服務(wù)器校驗這個表單的csrftoken是否和自己保存的一致,來判斷用戶的合法性

3、當用戶被csrf攻擊從其他站點發(fā)送精心編制的攻擊請求時,由于其他站點不可能知道隱藏的csrftoken字段的信息這樣在服務(wù)器端就會校驗失敗,攻擊被成功防御

具體配置如下:

template中添加{%csrf_token%}標簽

9、django的模板中filter和simple_tag的區(qū)別?

simple_tag

-參數(shù)任意,但是不能作為if條件判斷的條件

filter

-參數(shù)最多只能有兩個,但是可以作為if條件判斷的條件。

10、django路由系統(tǒng)中name的作用?

name 可以用于在 templates, models, views ……中得到對應(yīng)的網(wǎng)址,相當于“給網(wǎng)址取了個小名”,只要這個名字不變,網(wǎng)址變了也能通過名字獲取到。

11、簡述MVC和MTV

MVC: 模型 視圖 控制器

MTV: 模型 模板 視圖

12、談?wù)勀銓estfull 規(guī)范的認識?

restful其實就是一套編寫接口的協(xié)議,協(xié)議規(guī)定如何編寫以及如何設(shè)置返回值、狀態(tài)碼等信息。

最顯著的特點:

restful: 給用戶一個url,根據(jù)method不同在后端做不同的處理,比如:post 創(chuàng)建數(shù)據(jù)、get獲取數(shù)據(jù)、put和patch修改數(shù)據(jù)、delete刪除數(shù)據(jù)。

no rest: 給調(diào)用者很多url,每個url代表一個功能,比如:add_user/delte_user/edit_user/

當然,還有協(xié)議其他的,比如:

版本,來控制讓程序有多個版本共存的情況,版本可以放在 url、請求頭(accept/自定義)、GET參數(shù)

狀態(tài)碼,200/300/400/500

url中盡量使用名詞,restful也可以稱為“面向資源編程”

api標示:

api.YueNet.com

www.YueNet.com/api/

13、接口的冪等性是什么意思?

一個接口通過首先進行1次訪問,然后對該接口進行N次相同訪問的時候,對訪問對象不造成影響,那么就認為接口具有冪等性。

比如:

* GET, 第一次獲取數(shù)據(jù)、第二次也是獲取結(jié)果,冪等。

* POST, 第一次新增數(shù)據(jù),第二次也會再次新增,非冪等。

* PUT, 第一次更新數(shù)據(jù),第二次不會再次更新,冪等。

* PATCH,第一次更新數(shù)據(jù),第二次可能再次更新,非冪等。

* DELTE,第一次刪除數(shù)據(jù),第二次不會再次刪除,冪等。

14、什么是RPC?

RPC(Remote Procedure Call)—遠程過程調(diào)用,它是一種通過網(wǎng)絡(luò)從遠程計算機程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。RPC協(xié)議假定某些傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI網(wǎng)絡(luò)通信模型中,RPC跨越了傳輸層和應(yīng)用層。RPC使得開發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易。

15、Http和Https的區(qū)別?

超文本傳輸協(xié)議HTTP協(xié)議被用于在Web瀏覽器和網(wǎng)站服務(wù)器之間傳遞信息,HTTP協(xié)議以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了Web瀏覽器和網(wǎng)站服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此,HTTP協(xié)議不適合傳輸一些敏感信息,比如:信用卡號、密碼等支付信息。

為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS,為了數(shù)據(jù)傳輸?shù)陌踩?#xff0c;HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗證服務(wù)器的身份,并為瀏覽器和服務(wù)器之間的通信加密。

16、為什么要使用django rest framework框架?

1.客戶端-服務(wù)端分離

優(yōu)點:提高用戶界面的便攜性,通過簡化服務(wù)器提高可伸縮性….

2.無狀態(tài)(Stateless):從客戶端的每個請求要包含服務(wù)器所需要的所有信息

優(yōu)點:提高可見性(可以單獨考慮每個請求),提高了可靠性(更容易從局部故障中修復(fù)),提高可擴展性(降低了服務(wù)器資源使用)

3.緩存(Cachable):服務(wù)器返回信息必須被標記是否可以緩存,如果緩存,客戶端可能會重用之前的信息發(fā)送請求

優(yōu)點:減少交互次數(shù),減少交互的平均延遲

4.統(tǒng)一接口

優(yōu)點:提高交互的可見性,鼓勵單獨改善組件

5.支持按需代碼(Code-On-Demand 可選)

優(yōu)點:提高可擴展性

17、簡述 django rest framework框架的認證流程。

如何編寫?寫類并實現(xiàn)authticate

方法中可以定義三種返回值: (user,auth),認證成功 None , 匿名用戶 異常 ,認證失敗

流程: dispatch 再去request中進行認證處理

18、django rest framework如何實現(xiàn)的用戶訪問頻率控制?

a. 基于用戶IP限制訪問頻率

b. 基于用戶IP顯示訪問頻率(利于Django緩存)

c. view中限制請求頻率

d. 匿名時用IP限制+登錄時用Token限制

19、簡述什么是FBV和CBV?

django中請求處理方式有2種:FBV 和 CBV

FBV(function base views) 就是在視圖里使用函數(shù)處理請求。

CBV(class base views)就是在視圖里使用類處理請求 類需要繼承view

20、什么是wsgi?

WSGI(Web Server Gateway Interface,Web 服務(wù)器網(wǎng)關(guān)接口)則是Python語言中1所定義的Web服務(wù)器和Web應(yīng)用程序之間或框架之間的通用接口標準。

WSGI就是一座橋梁,橋梁的一端稱為服務(wù)端或網(wǎng)關(guān)端,另一端稱為應(yīng)用端或者框架端,WSGI的作用就是在協(xié)議之間進行轉(zhuǎn)化。WSGI將Web組件分成了三類:Web 服務(wù)器(WSGI Server)、Web中間件(WSGI Middleware)與Web應(yīng)用程序(WSGI Application)。

Web Server接收HTTP請求,封裝一系列環(huán)境變量,按照WSGI接口標準調(diào)用注冊的WSGI Application,最后將響應(yīng)返回給客戶端。

21、列舉django orm 中所有的方法(QuerySet對象的所有方法)

返回Query Set對象的方法有:

* all()

* filter()

* exclude()

* order_by()

* reverse()

* dictinct()

特殊的QuerySet:

* values() 返回一個可迭代的字典序列

* values_list() 返回一個可迭代的元祖序列

返回具體對象的:

* get()

* first()

* last()

返回布爾值的方法有:

* existe()

返回數(shù)學的方法有:

* count( )

----------------休止符---------------

web基礎(chǔ)太弱,需要盡快突擊強化,視頻加代碼,fighting。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的pythonweb开发面试_Python web 面试题(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。