亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python工程師面試題 與Python Web相關

2020-01-04 17:50:57
字體:
來源:轉載
供稿:網友
這篇文章主要為大家分享了Python工程師面試題,面試題的內容主要與Python Web相關,感興趣的小伙伴們可以參考一下
 

本文為大家分享的Python工程師面試題主要與Python Web相關,供大家參考,具體內容如下

1、解釋一下 WSGI 和 FastCGI 的關系?
CGI全稱是“公共網關接口”(CommonGateway Interface),HTTP服務器與你的或其它機器上的程序進行“交談”的一種工具,其程序須運行在網絡服務器上?!GI可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。如php,perl,tcl等。
FastCGI像是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活后,不會每次都要花費時間去fork一次(這是CGI最為人詬病的fork-and-execute模式)。它還支持分布式的運算, 即 FastCGI 程序可以在網站服務器以外的主機上執行并且接受來自其它網站服務器來的請求。
FastCGI是語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在內存中并因此獲得較高的性能。眾所周知,CGI解釋器的反復加載是CGI性能低下的主要原因,如果CGI解釋器保持在內存中并接受FastCGI進程管理器調度,則可以提供良好的性能、伸縮性、Fail- Over特性等等。
WSGI的全稱為: PythonWeb Server Gateway Interface v1.0 (Python Web 服務器網關接口),
它是 Python 應用程序和 WEB 服務器之間的一種接口。
它的作用,類似于FCGI 或 FASTCGI 之類的協議的作用。
WSGI 的目標,是要建立一個簡單的普遍適用的服務器與 WEB 框架之間的接口。
Flup就是使用 Python 語言對 WSGI 的一種實現,是可以用于 Python 的應用開發中的一種工具或者說是一種庫。
Spawn-fcgi是一個小程序,這個程序的作用是管理fast-cgi進程,那么管理wsgi進程也是沒有問題的,功能和php-fpm類似。
故,簡單地說,WSGI和FastCGI都是一種CGI,用于連接WEB服務器與應用程序,而WSGI專指Python應用程序。而flup是WSGI的一種實現,Spawn-fcgi是用于管理flup進程的一個工具,可以啟動多個wsgi進程,并管理它們。
2、解釋一下 Django 和 Tornado 的關系、差別
Django源自一個在線新聞 Web站點,于 2005 年以開源的形式被釋放出來。
Django 框架的核心組件有:
用于創建模型的對象關系映射為最終用戶設計的完美管理界面一流的 URL 設計設計者友好的模板語言緩存系統等等
它鼓勵快速開發,并遵循MVC設計。Django遵守 BSD版權,最新發行版本是Django
1.4,于2012年03月23日發布.Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便的以“插件”形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性。它還強調快速開發和DRY(Do Not RepeatYourself)原則。
Tornado是 FriendFeed使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具和優化。
Tornado 和現在的主流 Web 服務器框架(包括大多數Python 的框架)有著明顯的區別:它是非阻塞式服務器,而且速度相當快。得利于其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,這意味著對于實時 Web服務來說,Tornado 是一個理想的 Web 框架。我們開發這個 Web 服務器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持著一個服務器連接。(關于如何擴容 服務器,以處理數以千計的客戶端的連接的問題。
3、解釋下django-debug-toolbar的使用
使用django開發站點時,可以使用django-debug-toolbar來進行調試。在settings.py中添加'debug_toolbar.middleware.DebugToolbarMiddleware'到項目的MIDDLEWARE_CLASSES 內。
4、解釋下Django使用redis緩存服務器
為了能在Django中使用redis,還需要安裝redis for Django的插件。然后在Django的settings中配置了?,F在連接和配置都已經完成了,接下來是一個簡單的例子:

from django.conf import settings from django.core.cache import cache #read cache user id def read_from_cache(self, user_name):   key = 'user_id_of_'+user_name   value = cache.get(key)   if value == None:     data = None   else:     data = json.loads(value)   return data #write cache user id def write_to_cache(self, user_name):   key = 'user_id_of_'+user_name   cache.set(key, json.dumps(user_name), settings.NEVER_REDIS_TIMEOUT) 

5、如何進行Django單元測試
Django的單元測試使用python的unittest模塊,這個模塊使用基于類的方法來定義測試。類名為django.test.TestCase,繼承于python的unittest.TestCase。

from django.test import TestCase from myapp.models import Animal   class AnimalTestCase(TestCase):   def setUp(self):     Animal.objects.create(name="lion", sound="roar")     Animal.objects.create(name="cat", sound="meow")     def test_animals_can_speak(self):     """Animals that can speak are correctly identified"""     lion = Animal.objects.get(name="lion")     cat = Animal.objects.get(name="cat")     self.assertEqual(lion.speak(), 'The lion says "roar"')     self.assertEqual(cat.speak(), 'The cat says "meow"') 

執行目錄下所有的測試(所有的test*.py文件):運行測試的時候,測試程序會在所有以test開頭的文件中查找所有的test cases(inittest.TestCase的子類),自動建立測試集然后運行測試。

$ python manage.py test 

執行animals項目下tests包里的測試:

$ python manage.py testanimals.tests 

執行animals項目里的test測試:

$ python manage.py testanimals 

單獨執行某個test case:

$ python manage.py testanimals.tests.AnimalTestCase 

單獨執行某個測試方法:

$ python manage.py testanimals.tests.AnimalTestCase.test_animals_can_speak 

為測試文件提供路徑:

$ python manage.py testanimals/ 

通配測試文件名:

$ python manage.py test--pattern="tests_*.py" 

啟用warnings提醒:

$ python -Wall manage.py test 

6、解釋下Http協議
HTTP是一個屬于應用層的面向對象的協議,由于其簡捷、快速的方式,適用于分布式超媒體信息系統。
HTTP協議的主要特點可概括如下:

  • 1.支持客戶/服務器模式。
  • 2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。
  • 3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。
  • 4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。
  • 5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

7、解釋下Http請求頭和常見響應狀態碼
Accept:指瀏覽器或其他客戶可以接愛的MIME文件格式??梢愿鶕袛嗖⒎祷剡m當的文件格式。
Accept-Charset:指出瀏覽器可以接受的字符編碼。英文瀏覽器的默認值是ISO-8859-1.
Accept-Language:指出瀏覽器可以接受的語言種類,如en或en-us,指英語。
Accept-Encoding:指出瀏覽器可以接受的編碼方式。編碼方式不同于文件格式,它是為了壓縮文件并加速文件傳遞速度。瀏覽器在接收到Web響應之后先解碼,然后再檢查文件格式。
Cache-Control:設置關于請求被代理服務器存儲的相關選項。一般用不到。
Connection:用來告訴服務器是否可以維持固定的HTTP連接。HTTP/1.1使用Keep-Alive為默認值,這樣,當瀏覽器需要多個文件時(比如一個HTML文件和相關的圖形文件),不需要每次都建立連接。
Content-Type:用來表名request的內容類型??梢杂肏ttpServletRequest的getContentType()方法取得。
Cookie:瀏覽器用這個屬性向服務器發送Cookie。Cookie是在瀏覽器中寄存的小型數據體,它可以記載和服務器相關的用戶信息,也可以用來實現會話功能。

補充:

狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息--表示請求已接收,繼續處理
2xx:成功--表示請求已被成功接收、理解、接受
3xx:重定向--要完成請求必須進行更進一步的操作
4xx:客戶端錯誤--請求有語法錯誤或請求無法實現
5xx:服務器端錯誤--服務器未能實現合法的請求
常見狀態代碼、狀態描述、說明:
200 OK     //客戶端請求成功
400 Bad Request  //客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized //請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden  //服務器收到請求,但是拒絕提供服務
404 Not Found  //請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error //服務器發生不可預期的錯誤
503 Server Unavailable  //服務器當前不能處理客戶端的請求,一段時間后可能恢復正常
eg:HTTP/1.1 200 OK (CRLF)

希望通過本文能夠幫助大家順順利利通過Python面試。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲天堂一区二区三区| 欧亚精品在线观看| 久久久噜久噜久久综合| 亚洲国产精品久久久久秋霞蜜臀| 日本一本a高清免费不卡| 久久全国免费视频| www.国产精品一二区| 欧美极品美女电影一区| 国产精品久久久久久久久久久不卡| 亚洲人成毛片在线播放| 欧美激情视频给我| 亚洲美女在线观看| 久久久久在线观看| 国产精品最新在线观看| 国产精品小说在线| 国产精品大陆在线观看| 欧美特黄级在线| 九九热精品视频在线播放| 国产精品入口免费视频一| 福利视频导航一区| 精品国产乱码久久久久久天美| 国产mv久久久| 亚洲国内高清视频| 日本精品久久中文字幕佐佐木| 欧美专区国产专区| 国产欧美一区二区三区四区| 少妇高潮 亚洲精品| 97色在线观看| 中文字幕最新精品| 欧美极品在线视频| 亚洲国产精品va在线看黑人动漫| 伊人久久久久久久久久久久久| 国产综合色香蕉精品| 欧美电影在线观看网站| 成人免费福利视频| 欧美成人三级视频网站| 国产精品黄色av| 在线a欧美视频| 亚洲高清免费观看高清完整版| 狠狠躁夜夜躁久久躁别揉| 国产一区二区视频在线观看| 俺也去精品视频在线观看| 中文精品99久久国产香蕉| 最近2019好看的中文字幕免费| 日韩欧美在线视频免费观看| 91国偷自产一区二区三区的观看方式| 欧美精品在线免费观看| 中文字幕亚洲图片| 日韩视频精品在线| 尤物九九久久国产精品的特点| 精品成人69xx.xyz| 国产做受高潮69| 91精品综合久久久久久五月天| 成人午夜激情网| 亚洲一二三在线| 精品久久久久久久久久ntr影视| 在线观看久久久久久| 亚洲国产精品推荐| 亚洲天堂网站在线观看视频| 大胆欧美人体视频| 久久九九亚洲综合| 亚洲视频在线免费看| 色悠悠久久久久| 亚洲国产精品99久久| 国产亚洲人成网站在线观看| 欧美劲爆第一页| 日韩av在线电影网| 国产精品丝袜一区二区三区| 北条麻妃一区二区三区中文字幕| 欧美一区二区视频97| 国产中文字幕日韩| 国产在线日韩在线| xx视频.9999.com| 精品久久久久人成| 免费97视频在线精品国自产拍| 97精品一区二区视频在线观看| 国产亚洲精品一区二555| 欧美不卡视频一区发布| 91国产精品视频在线| 91人人爽人人爽人人精88v| 国产精品亚洲综合天堂夜夜| 国产精品色视频| 色综合久久中文字幕综合网小说| 97不卡在线视频| 成人在线精品视频| 91亚洲国产精品| 日韩美女视频在线观看| 国产一区二区三区在线视频| 91精品国产免费久久久久久| 尤物tv国产一区| 国产日韩一区在线| 欧美激情精品久久久久久变态| 日韩一中文字幕| 久久久黄色av| 一区二区欧美激情| 国产成+人+综合+亚洲欧洲| 中文字幕亚洲无线码在线一区| 亚洲a级在线观看| 夜色77av精品影院| 中文字幕欧美视频在线| 亚洲国产精品yw在线观看| 北条麻妃在线一区二区| 国产精品久久久久av免费| 欧美激情精品久久久久久| 国产免费亚洲高清| 日韩免费av在线| 亚洲国产精品va在线观看黑人| 欧洲日韩成人av| 国产精品91一区| 国产日韩在线播放| 久久中文字幕在线| 欧美日韩在线另类| 国产欧美日韩中文字幕| 亚洲欧美制服中文字幕| 亚洲国产精品久久久久久| 国产91精品久久久久| 91久久精品国产91久久| 久久九九国产精品怡红院| 亚洲人成电影在线观看天堂色| 精品久久久久久亚洲精品| 欧美专区第一页| 国产亚洲精品美女| 国产精品v片在线观看不卡| 欧洲午夜精品久久久| 日av在线播放中文不卡| 成人午夜在线影院| 伊人亚洲福利一区二区三区| 中文字幕欧美在线| 伊人亚洲福利一区二区三区| 欧美午夜www高清视频| 久久久久久伊人| 国产精品久久久久9999| 亚洲欧洲国产伦综合| 色99之美女主播在线视频| 一区二区三区高清国产| 亚洲成人黄色网址| 精品视频中文字幕| 中文字幕av一区中文字幕天堂| 国产日韩中文字幕| 久久国产精彩视频| 中文字幕亚洲综合| 日韩a**站在线观看| 在线播放国产一区中文字幕剧情欧美| 久久免费视频在线观看| 91久久在线观看| 欧美做受高潮1| 久久久av电影| 久久综合久中文字幕青草| 97av在线影院| 国产精品九九久久久久久久| 欧美福利视频在线观看| 中文一区二区视频| 日韩动漫免费观看电视剧高清| 欧美激情综合亚洲一二区| 国产精品天天狠天天看| 日韩av手机在线观看| 亚洲精品ady| 欧美一区二区三区图| 91精品国产综合久久香蕉| 亚洲人成免费电影| 久久久久免费视频| 国产日韩在线观看av| 亚洲综合中文字幕在线观看| 欧美人与性动交|