pythonweb開發面試_Python web 面試題(一)

1、列舉django的內置組件?

url 、view、model、template、中間件

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

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—->拿到數據返回給view—->試圖將數據渲染到模版中拿到字符串—->中間件—>uwsgi—->nginx—->前端渲染

4、django的request對象是在什么時候創建的?

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

5、only和defer的區別?

defer : 映射中排除某列數據

only : 僅取某個列中的數據

6、select_related和prefetch_related的區別?

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

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

7、values和values_list的區別?

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

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

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

8、django中csrf的實現機制?

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

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

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

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

具體配置如下:

template中添加{%csrf_token%}標簽

9、django的模板中filter和simple_tag的區別?

simple_tag

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

filter

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

10、django路由系統中name的作用?

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

11、簡述MVC和MTV

MVC: 模型 視圖 控制器

MTV: 模型 模板 視圖

12、談談你對restfull 規范的認識?

restful其實就是一套編寫接口的協議,協議規定如何編寫以及如何設置返回值、狀態碼等信息。

最顯著的特點:

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

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

當然,還有協議其他的,比如:

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

狀態碼,200/300/400/500

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

api標示:

api.YueNet.com

www.YueNet.com/api/

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

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

比如:

* GET, 第一次獲取數據、第二次也是獲取結果,冪等。

* POST, 第一次新增數據,第二次也會再次新增,非冪等。

* PUT, 第一次更新數據,第二次不會再次更新,冪等。

* PATCH,第一次更新數據,第二次可能再次更新,非冪等。

* DELTE,第一次刪除數據,第二次不會再次刪除,冪等。

14、什么是RPC?

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

15、Http和Https的區別?

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

為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文本傳輸協議HTTPS,為了數據傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信加密。

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

1.客戶端-服務端分離

優點:提高用戶界面的便攜性,通過簡化服務器提高可伸縮性….

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

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

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

優點:減少交互次數,減少交互的平均延遲

4.統一接口

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

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

優點:提高可擴展性

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

如何編寫?寫類并實現authticate

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

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

18、django rest framework如何實現的用戶訪問頻率控制?

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

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

c. view中限制請求頻率

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

19、簡述什么是FBV和CBV?

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

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

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

20、什么是wsgi?

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

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

Web Server接收HTTP請求,封裝一系列環境變量,按照WSGI接口標準調用注冊的WSGI Application,最后將響應返回給客戶端。

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

返回Query Set對象的方法有:

* all()

* filter()

* exclude()

* order_by()

* reverse()

* dictinct()

特殊的QuerySet:

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

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

返回具體對象的:

* get()

* first()

* last()

返回布爾值的方法有:

* existe()

返回數學的方法有:

* count( )

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260752.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第3章 Python 數字圖像處理(DIP) - 灰度變換與空間濾波18 - 低通、高通、帶阻和帶通濾波器、組合使用空間增強方法

低通、高通、帶阻和帶通濾波器 得到空間濾波器的第三種方法,生成一維濾波器函數,然后要么使用式(3.42)wvvTw vv^TwvvT生成二維可分離的濾波器函數,要么旋轉這些一維函數來生成二維核。旋轉后的一維函數是圓對稱(各向同性&#x…

MySQL兩千萬數據優化遷移

最近有一張2000W條記錄的數據表需要優化和遷移。2000W數據對于MySQL來說很尷尬,因為合理的創建索引速度還是挺快的,再怎么優化速度也得不到多大提升。不過這些數據有大量的冗余字段和錯誤信息,極不方便做統計和分析。所以我需要創建一張新表&…

Linux Tomcat 6.0安裝配置實踐總結

系統環境: Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64位 Tomcat下載 從官方網站 http://tomcat.apache.org/下載你需要的Tomcat版本,目前Tomcat主要版本有Tomcat 6.0、Tomcat 7.0、Tomcat 8.0三個版本,下面我們以6.0(6.0.39…

如何給FormPanel表單中的元素賦值以及獲取表單元素值

1.定義表單元素的name屬性如下 var HLV new Ext.form.TextField({fieldLabel: 匯率,name:EXCHANGERATE,anchor: 30%}); 2.定義數據源 var ExchangeRatestore new Ext.data.Store({proxy: new Ext.data.HttpProxy({ url: WsECOTAX01.asmx/SelectExchangeRate, method: "po…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波1 - 傅里葉級數和變換簡史

本章主要講解頻域域濾波的技術,主要技術用到是大家熟悉的傅里葉變換與傅里葉反變換。這里有比較多的篇幅講解的傅里葉的推導進程,用到Numpy傅里葉變換。本章理論基礎比較多,需要更多的耐心來閱讀,有發現有錯誤,可以與我…

python中str是什么函數_python str函數怎么用

展開全部 是將一個2113對象轉成字符串顯示5261,注意只是顯示用,有些對象4102轉成字符串沒有直1653接的意思。 str():將變量轉化為字符串類型 a 1 b [1, 2, 3] str_a str(a) print(a) print(type(a)) str_b str(b) print(b) print(type(b)) The str()…

[ofbiz]less-than (lt;) and greater-than (gt;) symbols

問題描述&#xff1a; In field [updateItemStr] less-than (<) and greater-than (>) symbols are not allowed 此處的field [updateItemStr]是services的一個IN參數&#xff0c;錯誤描述的意思是"<,>"不能出現在這個域內。 解決辦法&#xff1a; 在ser…

分頁探究--Filter+JSTL

最近卡了一個功能就是分頁&#xff0c;查了很多資料&#xff0c;分頁大概是兩種類型&#xff1a;一種是把數據庫的東西全部查出來然后放在session里&#xff0c;用list一頁一頁傳到頁面&#xff0c;這樣的消耗比較大;另一種就是使用sql語句的limit來進行數據庫分頁查詢。我使用…

iPhone開發資料之內存管理 ,循環引用導致的內存問題

iPhone開發資料之內存管理 ,循環引用導致的內存問題 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447 http://en.wikipedia.org/wiki/Reference_counting 【IT168 技術文檔】開…

python能做大型游戲嗎_python有做大型游戲的潛力嗎?

著作權歸作者所有。商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處。 豈止是有潛力&#xff0c;簡直是很合適&#xff01; 豬廠兩大游戲客戶端引擎&#xff0c;NeoX 和 Messiah&#xff0c;都使用 Python 作為腳本語言。 你最近所了解的比較火的掛著豬廠旗號的&a…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波2 - 復數、傅里葉級數、連續單變量函數的傅里葉變換、卷積

目錄基本概念復數傅里葉級數沖激函數及其取樣&#xff08;篩選&#xff09;性質連續單變量函數的傅里葉變換卷積基本概念 復數 復數CCC的定義為 CRjI(4.3)C R jI \tag{4.3}CRjI(4.3) R,IR,IR,I為實數&#xff0c;RRR是實部&#xff0c;III是虛部&#xff0c;j?1j \sqrt{-…

不要迷失在技術的海洋中【轉】

轉自http://www.cnblogs.com/lovecherry/archive/2007/10/28/940555.html 不要迷失在技術的海洋中 技術就好像一片汪洋大海&#xff0c;越深入越望不到邊際。就拿自己的體驗來說吧&#xff0c;2000年的時候在學校搞ASP&#xff0c;覺得網頁開發就是這么簡單&#xff0c;把數據庫…

使用代碼設置Item級的權限(權限總結1)

itle in english:set Item Level Permission for SharePoint (MOSS/WSS) List/Document Library Programmatically 有些時候&#xff0c;我們需要為文檔庫里面某個文件設置特殊的權限&#xff0c;這個權限不繼承自列表權限&#xff0c;當然最簡單的最好是再創建一個列表&#…

echarts 4.0.4怎么下載_怎么讓ECharts的提示框tooltip自動輪播?

1. 怎么讓ECharts的提示框tooltip自動輪播?在用ECharts做大屏或者可視化展示項目的時候&#xff0c;讓提示框tooltip自動輪播是比較常見的需求&#xff0c;給大家推薦一個插件叫echarts-tooltip-auto-show,名字是有點長&#xff0c;但是挺好用的。在hover顯示tooltip之后&…

[React Native]高度自增長的TextInput組件

之前我們學習了從零學React Native之11 TextInput了解了TextInput相關的屬性。 在開發中,我們有時候有這樣的需求, 希望輸入區域的高度隨著輸入內容的長度而增長, 如下&#xff1a; 這時候我們需要自定義一個組件&#xff1a; 在項目中創建AutoExpandingTextInput.js import …

網站開啟Gzip壓縮-apache

找到并打開apache/conf目錄中的httpd.conf文件 httpd.conf中打開deflate_Module和headers_Module模塊&#xff0c;具體做法為將 如下兩句前面的#去掉&#xff1a;LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 3.配置文…

第4章 Python 數字圖像處理(DIP) - 頻率域濾波3 - 取樣和取樣函數的傅里葉變換、混疊

目錄取樣和取樣函數的傅里葉變換取樣取樣后的函數的傅里葉變換取樣定理混疊由取樣后的數據重建&#xff08;復原&#xff09;函數取樣和取樣函數的傅里葉變換 取樣 fˉ(t)f(t)sΔT(t)∑n?∞∞f(t)δ(t?nΔT)(4.27)\bar f(t) f(t)s_{\Delta T}(t) \sum_{n-\infty}^{\infty}…

[轉]Android開發,實現可多選的圖片ListView,便于批量操作

本文轉自&#xff1a;http://www.cnblogs.com/gergulo/archive/2011/06/14/2080629.html 之前項目需要實現一個可多選的圖片列表&#xff0c;用戶選中一到多張圖片后&#xff0c;批量上傳。但是網上有可多選普通列表的代碼、也有單純圖片列表的代碼&#xff0c;卻沒有兩者合并的…

個人信息安全影響評估指南_發布 | 網絡安全標準實踐指南—移動互聯網應用程序(App)收集使用個人信息自評估指南...

關于發布《網絡安全標準實踐指南—移動互聯網應用程序(App)收集使用個人信息自評估指南》的通知信安秘字[2020] 40號各有關單位&#xff1a;為落實《網絡安全法》相關要求&#xff0c;圍繞中央網信辦、工信部、公安部、市場監管總局聯合制定的《App違法違規收集使用個人信息行為…

Go的50度灰:Golang新開發者要注意的陷阱和常見錯誤

Go的50度灰&#xff1a;Golang新開發者要注意的陷阱和常見錯誤 http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/