日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

面試前趕緊看了5道Python Web面試題,Python面試題No17

系統(tǒng) 1754 0

目錄

  • 本面試題題庫(kù),由公號(hào):非本科程序員 整理發(fā)布
  • 第1題: Flask中的請(qǐng)求上下文和應(yīng)用上下文是什么?
  • 第2題:django中間件的使用?
  • 第3題: django開(kāi)發(fā)中數(shù)據(jù)做過(guò)什么優(yōu)化?
  • 第4題: 解釋一下 Django 和 Tornado 的關(guān)系、差別?
    • Django
    • Tornado
  • 第5題:什么是restful API ,談?wù)勀愕睦斫猓?
    • REST 的特點(diǎn)
  • 第6題:關(guān)注題,最近在公號(hào)更新一個(gè)神奇的系列入門(mén)文章

@

本面試題題庫(kù),由公號(hào):非本科程序員 整理發(fā)布

第1題: Flask中的請(qǐng)求上下文和應(yīng)用上下文是什么?

  • 在Flask中處理請(qǐng)求時(shí),就會(huì)產(chǎn)生一個(gè) “請(qǐng)求上下文” 對(duì)象,整個(gè)請(qǐng)求的處理過(guò)程,都會(huì)在這個(gè)上下文對(duì)象中進(jìn)行。
    這保證了請(qǐng)求的處理過(guò)程不被干擾。
    包含了和請(qǐng)求處理相關(guān)的信息,同時(shí)Flask還根據(jù)werkzeug.local模塊中實(shí)現(xiàn)的一種數(shù)據(jù)結(jié)構(gòu)LocalStack用來(lái)存儲(chǔ)“請(qǐng)求上下文”對(duì)象。
  • “應(yīng)用上下文” 也是一個(gè)上下文對(duì)象,可以使用with語(yǔ)句構(gòu)造一個(gè)上下文環(huán)境,它也實(shí)現(xiàn)了push、pop等方法。
    “應(yīng)用上下文” 的構(gòu)造函數(shù)也和 “請(qǐng)求上下文” 類(lèi)似,都有app、url_adapter等屬性。“應(yīng)用上下文” 存在的一個(gè)主要功能就是確定請(qǐng)求所在的應(yīng)用。

第2題:django中間件的使用?

django在中間件中預(yù)設(shè)了6個(gè)方法,這6個(gè)方法區(qū)別在于不同的階段執(zhí)行,對(duì)輸入或輸出進(jìn)行干預(yù),方法如下:

          
            #1 初始化: 無(wú)需任何參數(shù),服務(wù)器響應(yīng)第一個(gè)請(qǐng)求的時(shí)候調(diào)用一次,用于確定是否啟用當(dāng)前中間件

def __init__():
    pass

#2.處理請(qǐng)求前:在每個(gè)請(qǐng)求上調(diào)用,返回None或者HttpResponse 對(duì)象

def process_response(request):
    pass

#3 處理視圖前,在每個(gè)請(qǐng)求上調(diào)用,返回None 或HttpResopnse對(duì)象
def  process_view(request.view_func, view_args, view_kwargs):
    pass

#4 處理模板響應(yīng)前: 在每個(gè)請(qǐng)求上調(diào)用,返回實(shí)現(xiàn)render 方法的響應(yīng)對(duì)象
def peocess_template_response(request, response):
    pass
#5 處理響應(yīng)后,多有響應(yīng)返回瀏覽器之前被調(diào)用,每個(gè)請(qǐng)求上調(diào)用,返回HttpResponse對(duì)象

def process_response(request, response):
    pass

#6  異常處理:當(dāng)時(shí)圖拋出異常時(shí)調(diào)用,在每個(gè)請(qǐng)求上調(diào)用,返回一個(gè)HttpResponse對(duì)象
def process_exception(request, execption):
    pass
          
        

第3題: django開(kāi)發(fā)中數(shù)據(jù)做過(guò)什么優(yōu)化?

  1. 設(shè)計(jì)表時(shí),盡量少使用外鍵,因?yàn)橥怄I約束會(huì)影響插入和刪除性能
  2. 使用緩存,減少對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)
  3. orm框架下設(shè)置表時(shí),能使用varchar確定字段長(zhǎng)度時(shí),就別用text
  4. 可以給搜索頻率搞得字段屬性,在定義時(shí)創(chuàng)建索引
  5. django orm 框架下的Querysets 本來(lái)就有緩存的
  6. 如果一個(gè)頁(yè)面需要多次鏈接數(shù)據(jù)庫(kù),最好一次性去除所有需要的數(shù)據(jù),減少數(shù)據(jù)庫(kù)的查詢(xún)次數(shù)
  7. 若頁(yè)面只需要數(shù)據(jù)庫(kù)里面的某一兩個(gè)字段時(shí),可以用QuerySet.values()
  8. 在模板標(biāo)簽里使用with標(biāo)簽可以緩存Qset查詢(xún)結(jié)果

第4題: 解釋一下 Django 和 Tornado 的關(guān)系、差別?

Django

Django源自一個(gè)在線新聞 Web站點(diǎn),于 2005 年以開(kāi)源的形式被釋放出來(lái)。

Django 框架的核心組件有:

用于創(chuàng)建模型的對(duì)象關(guān)系映射為最終用戶設(shè)計(jì)的完美管理界面一流的 URL 設(shè)計(jì)設(shè)計(jì)者友好的模板語(yǔ)言緩存系統(tǒng)等等

它鼓勵(lì)快速開(kāi)發(fā),并遵循MVC設(shè)計(jì)。

Django遵守 BSD版權(quán),最新發(fā)行版本是Django1.4,于2012年03月23日發(fā)布.Django的主要目的是簡(jiǎn)便、快速的開(kāi)發(fā)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方插件,你甚至可以很方便的開(kāi)發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展性。它還強(qiáng)調(diào)快速開(kāi)發(fā)和DRY(Do Not RepeatYourself)原則。

Tornado

Tornado是 FriendFeed使用的可擴(kuò)展的非阻塞式 web 服務(wù)器及其相關(guān)工具的開(kāi)源版本。這個(gè) Web 框架看起來(lái)有些像 web.py 或者 Google 的 webapp,不過(guò)為了能有效利用非阻塞式服務(wù)器環(huán)境,這個(gè) Web 框架還包含了一些相關(guān)的有用工具和優(yōu)化。

Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù)Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。得利于其 非阻塞的方式和對(duì)epoll的運(yùn)用,Tornado 每秒可以處理數(shù)以千計(jì)的連接,這意味著對(duì)于實(shí)時(shí) Web服務(wù)來(lái)說(shuō),Tornado 是一個(gè)理想的 Web 框架。我們開(kāi)發(fā)這個(gè) Web 服務(wù)器的主要目的就是為了處理 FriendFeed 的實(shí)時(shí)功能 ——在 FriendFeed 的應(yīng)用里每一個(gè)活動(dòng)用戶都會(huì)保持著一個(gè)服務(wù)器連接。(關(guān)于如何擴(kuò)容 服務(wù)器,以處理數(shù)以千計(jì)的客戶端的連接的問(wèn)題。

REST 的特點(diǎn)

  1. 具象的。一般指表現(xiàn)層,要表現(xiàn)的對(duì)象就是資源。比如,客戶端訪問(wèn)服務(wù)器,獲取的數(shù)據(jù)就是資源。比如文字、圖片、音視頻等。
  2. 表現(xiàn):資源的表現(xiàn)形式。txt 格式、html 格式、json 格式、jpg 格式等。瀏覽器通過(guò)URL 確定資源的位置,但是需要在HTTP 請(qǐng)求頭中,用Accept 和Content-Type 字段指定,這兩個(gè)字段是對(duì)資源表現(xiàn)的描述。
  3. 狀態(tài)轉(zhuǎn)換:客戶端和服務(wù)器交互的過(guò)程。在這個(gè)過(guò)程中,一定會(huì)有數(shù)據(jù)和狀態(tài)的轉(zhuǎn)化,這種轉(zhuǎn)化叫做狀態(tài)轉(zhuǎn)換。其中,GET 表示獲取資源,POST 表示新建資源,PUT 表示更新資源,DELETE 表示刪除資源。HTTP 協(xié)議中最常用的就是這四種操作方式。

    RESTful 架構(gòu)

  4. 每個(gè)URL 代表一種資源;
  5. 客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;
  6. 客戶端通過(guò)四個(gè)http 動(dòng)詞,對(duì)服務(wù)器資源進(jìn)行操作,實(shí)現(xiàn)表現(xiàn)層狀態(tài)轉(zhuǎn)換。

第6題:關(guān)注題,最近在公號(hào)更新一個(gè)神奇的系列入門(mén)文章

她專(zhuān)科學(xué)歷
27歲從零開(kāi)始學(xué)習(xí)c,c++,python編程語(yǔ)言
29歲編寫(xiě)百例教程
30歲掌握10種編程語(yǔ)言,
用自學(xué)的經(jīng)歷告訴你,學(xué)編程就找夢(mèng)想橡皮擦

歡迎關(guān)注她的公眾號(hào),搜索— 非本科程序員

序號(hào) 文章
Python面試題No1 Python基礎(chǔ)面試,看這篇文章畫(huà)重點(diǎn)吧
Python面試題No2 Python面試快問(wèn)快答,理論要的就是速度與精準(zhǔn)
Python面試題No3 學(xué)習(xí)Python一年,基礎(chǔ)忘記了,看看面試題回憶回議
Python面試題No4 去面試Python工程師,這幾個(gè)基礎(chǔ)問(wèn)題一定要能回答
Python面試題No5 2019年,Python工程師必考的6個(gè)面試題
Python面試題No6 昨天去面試,這5個(gè)Python面試題都被考到了
Python面試題No7 周三面試Python開(kāi)發(fā),這幾道Python面試題差點(diǎn)答錯(cuò),Python面試題No7
Python面試題No8 面試Python工程師,這幾道編碼題有必要背背
Python面試題No9 又面試了Python爬蟲(chóng)工程師,碰到這么幾道面試題
Python面試題No10 朋友去面試Python工程師,又帶回來(lái)幾道基礎(chǔ)題
Python面試題No11 剛畢業(yè)去面試Python工程師,這幾道題太難了
Python面試題No12 五一4天就背這些Python面試題了
Python面試題No13 大意了,這幾道Python面試題沒(méi)有答對(duì)
Python面試題No14 明天找python工作,看看這幾道Python面試題吧
Python面試題No15 這幾道Python面試題,穩(wěn)準(zhǔn)狠

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 三台县| 招远市| 得荣县| 独山县| 光泽县| 宁海县| 兴隆县| 禹城市| 清镇市| 葵青区| 垦利县| 三穗县| 尚志市| 武鸣县| 米易县| 临清市| 阿城市| 当雄县| 北安市| 东乌珠穆沁旗| 韩城市| 彭泽县| 吴川市| 成安县| 永川市| 察隅县| 绥芬河市| 大洼县| 兴山县| 宜阳县| 池州市| 乌拉特前旗| 宣恩县| 镶黄旗| 旺苍县| 道孚县| 江孜县| 乌海市| 威信县| 太仓市| 德江县|