-
Python面試真題- Django重定向你是如何實(shí)現(xiàn)的?用的什么狀態(tài)碼?
【Python面試真題】- Django重定向你是如何實(shí)現(xiàn)的?用的什么狀態(tài)碼? 使用HttpResponseRedirect redirect和reverse 狀態(tài)碼:302,301
-
Python面試真題- 在多線(xiàn)程環(huán)境中,Python 虛擬機(jī)按什么方式執(zhí)行 ?
【Python面試真題】- 在多線(xiàn)程環(huán)境中,Python 虛擬機(jī)按什么方式執(zhí)行 ? 1. 設(shè)置GIL2. 切換到一個(gè)線(xiàn)程去運(yùn)行3. 運(yùn)行: a. 指定數(shù)量的字節(jié)碼指令,或者 b. 線(xiàn)程主動(dòng)讓出控制(可以調(diào)用time.sleep(0))4. 把線(xiàn)程設(shè)置為睡眠狀態(tài)5. 解鎖GIL6. 再次重復(fù)以上所有步驟 在調(diào)用外部代碼(如C/C++擴(kuò)展函數(shù))的時(shí)候,GIL 將會(huì)被鎖定,直到這個(gè)函數(shù)結(jié)束為止(由于在這期間沒(méi)有Python 的字節(jié)碼被運(yùn)行,所以不會(huì)做線(xiàn)程…
-
Python面試真題 - 迭代器和生成器的區(qū)別 ?
【Python面試真題】- 迭代器和生成器的區(qū)別 ? 1)迭代器是一個(gè)更抽象的概念,任何對(duì)象,如果它的類(lèi)有next方法和iter方法返回自己本身。對(duì)于string、list、dict、tuple等這類(lèi)容器對(duì)象,使用for循環(huán)遍歷是很方便的。在后臺(tái)for語(yǔ)句對(duì)容器對(duì)象調(diào)用iter()函數(shù),iter()是Python的內(nèi)置函數(shù)。iter()會(huì)返回一個(gè)定義了next()方法的迭代器對(duì)象,它在容器中逐個(gè)訪(fǎng)問(wèn)容器內(nèi)元素,next()也是Python的內(nèi)置函數(shù)。在沒(méi)有后續(xù)元素時(shí),next()會(huì)拋出一個(gè)S…
-
Python面試真題 - 寫(xiě)爬蟲(chóng)是用多進(jìn)程好?還是多線(xiàn)程好? 為什么?
【Python面試真題】- 寫(xiě)爬蟲(chóng)是用多進(jìn)程好?還是多線(xiàn)程好? 為什么? IO密集型代碼(文件處理、網(wǎng)絡(luò)爬蟲(chóng)等),多線(xiàn)程能夠有效提升效率(單線(xiàn)程下有IO操作會(huì)進(jìn)行IO等待,造成不必要的時(shí)間浪費(fèi),而開(kāi)啟多線(xiàn)程能在線(xiàn)程A等待時(shí),自動(dòng)切換到線(xiàn)程B,可以不浪費(fèi)CPU的資源,從而能提升程序執(zhí)行效率)。在實(shí)際的數(shù)據(jù)采集過(guò)程中,既考慮網(wǎng)速和響應(yīng)的問(wèn)題,也需要考慮自身機(jī)器的硬件情況,來(lái)設(shè)置多進(jìn)程或多線(xiàn)程
-
Python面試真題 - 你常用的mysql引擎有哪些?各引擎間有什么區(qū)別?
【Python面試真題】- 你常用的mysql引擎有哪些?各引擎間有什么區(qū)別? 主要 MyISAM 與 InnoDB 兩個(gè)引擎,其主要區(qū)別如下: 一、InnoDB 支持事務(wù),MyISAM 不支持,這一點(diǎn)是非常之重要。事務(wù)是一種高 級(jí)的處理方式,如在一些列增刪改中只要哪個(gè)出錯(cuò)還可以回滾還原,而 MyISAM 就不可以了; 二、MyISAM 適合查詢(xún)以及插入為主的應(yīng)用,InnoDB 適合頻繁修改以及涉及到 安全性較高的應(yīng)用; 三、InnoDB 支持外鍵,MyISAM 不支…
-
Python面試真題- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫(kù)?
【Python面試真題】- scrapy和scrapy-redis有什么區(qū)別?為什么選擇redis數(shù)據(jù)庫(kù)? 1)scrapy是一個(gè)Python爬蟲(chóng)框架,爬取效率極高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis數(shù)據(jù)庫(kù)、運(yùn)行在scrapy框架之上的組件,可以讓scrapy支持分布式策略,Slaver端共享Master端redis數(shù)據(jù)庫(kù)里的item隊(duì)列、請(qǐng)求隊(duì)列和請(qǐng)求指紋集合。 2)為什么選擇redis數(shù)據(jù)庫(kù),因?yàn)閞edis支持主從同步,而且數(shù)據(jù)都是緩存在內(nèi)…
-
【Python面試真題】- Django 本身提供了 runserver,為什么不能用來(lái)部署?
【Python面試真題】- Django 本身提供了 runserver,為什么不能用來(lái)部署? runserver 方法是調(diào)試 Django 時(shí)經(jīng)常用到的運(yùn)行方式,它使用 Django 自帶的 WSGI Server 運(yùn)行,主要在測(cè)試和開(kāi)發(fā)中使用,并且 runserver 開(kāi)啟的方式也是單進(jìn)程 。 uWSGI 是一個(gè) Web 服務(wù)器,它實(shí)現(xiàn)了 WSGI 協(xié)議、uwsgi、http 等協(xié)議。注意 uwsgi 是一種通信協(xié)議,而 uWSGI 是實(shí)現(xiàn)uwsgi 協(xié)議和 WSGI 協(xié)議的 Web…
-
Python面試真題 - Tornado 的核是什么 ?
【Python面試真題】- Tornado 的核是什么 ? Tornado 的核心是 ioloop 和 iostream 這兩個(gè)模塊,前者提供了一個(gè)高效的 I/O 事件循環(huán),后者則封裝了 一個(gè)無(wú)阻塞的 socket 。通過(guò)向 ioloop 中添加網(wǎng)絡(luò) I/O 事件,利用無(wú)阻塞的 socket ,再搭配相應(yīng)的回調(diào) 函數(shù),便可達(dá)到夢(mèng)寐以求的高效異步執(zhí)行。
-
Python面試真題 - Django重定向你是如何實(shí)現(xiàn)的?用的什么狀態(tài)碼?
【Python面試真題】- Django重定向你是如何實(shí)現(xiàn)的?用的什么狀態(tài)碼? 使用HttpResponseRedirect redirect和reverse 狀態(tài)碼:302,301
-
Python面試真題 - 怎么描述數(shù)組、鏈表、隊(duì)列、堆棧的區(qū)別?
【Python面試真題】- 怎么描述數(shù)組、鏈表、隊(duì)列、堆棧的區(qū)別? 數(shù)組與鏈表是數(shù)據(jù)存儲(chǔ)方式的概念,數(shù)組在連續(xù)的空間中存儲(chǔ)數(shù)據(jù),而鏈表可以在非連續(xù)的空間中存儲(chǔ)數(shù)據(jù); 隊(duì)列和堆棧是描述數(shù)據(jù)存取方式的概念,隊(duì)列是先進(jìn)先出,而堆棧是后進(jìn)先出;隊(duì)列和堆棧可以用數(shù)組來(lái)實(shí)現(xiàn),也可以用鏈表實(shí)現(xiàn)。