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

點開瞅瞅,再來幾道Python面試題吧,Python面試題No20

系統 1714 0

本面試題題庫,由公號:非本科程序員 整理發布

第1題:如何理解 Django 被稱為 MTV 模式?

這個題就是面向對象設計和設計模式的開始。
你可能比較熟悉的模式叫做: MVC。說是 Model View Controller,而在 Django 中因為 Template 來處理視圖展現,所以稱為:
MTV。
接下里會問到的就是分層的概念,有句話叫:“沒有什么問題是不能通過增加一層解決的,如果有,那就再加一層。”當然還會有設計模式的一些原則等著你,比如開-閉原則、單一職責原則等。

第2題:解釋下什么是 ORM 以及它的優缺點是什么?

ORM:Object Relational Mapping(對象關系映射),它做的事就是幫我們封裝一下對數據庫的操作,避免我們來寫不太好維護的 SQL 代碼。

  • 優點就是讓我們寫的代碼更容易維護,因為里面不用夾雜著各種 SQL 代碼。
  • 缺點是失去了 SQL 的靈活,并且越是通用的 ORM 框架,性能損耗會越大。

說到性能損耗,可以接著聊的是 Django 中的 raw sql,也就是說 Model.objects.raw 這個方法的使用,它的作用、原理、性能提升等。還可以繼續聊另外一個老生常談的問題:N+1 的問題。

第3題:Django 系統中如何配置數據庫的長連接?

這涉及到 Django 如何處理數據庫連接細節的問題。默認情況下對于每一個請求 Django 都會建立一個新的數據庫連接。這意味著當請求量過大時就會出現數據庫(MySQL)的 Too many connection 的問題,對于這個問題,在其他的語言框架中有連接池這樣的東西來減少數據庫的連接數,來提升連接的使用效率。而在 Django中,為了處理這一問題,增加了一個配置:

CONN_MAX_AGE ,在 settings 的 DATABASES 配置中。配置了該選項后,Django 會跟數據庫保持鏈接(時長取決于 CONN_MAX_AGE 設定的值 ),不再會針對每個請求都創建新的連接了。

但是需要注意的是,這跟數據庫連接池的概念還不太一樣。

第4題: 請解釋一下python的線程鎖Lock和Rlock的區別,以及你曾經在項目中是如何使用的?

從原理上來說:在同一線程內,對RLock進行多次acquire()操作,程序不會阻塞。
資源總是有限的,程序運行如果對同一個對象進行操作,則有可能造成資源的爭用,甚至導致死鎖 也可能導致讀寫混亂

第5題:字典、列表查詢時的時間復雜度是怎樣的?  

列表是序列,可以理解為數據結構中的數組,字典可以理解為數據結構中的 hashmap ,python中list對象的存儲結構采用的是線性表,因此其查詢復雜度為 O(n)
而dict對象的存儲結構采用的是散列表(hash表),其在最優情況下查詢復雜度為O(1)。
dict的占用內存稍比list大,會在1.5倍左右。

第6題:關注題,最近在公號更新一個神奇的系列入門文章

更多內容,歡迎關注 https://dwz.cn/r4lCXEuL


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 廉江市| 柞水县| 察隅县| 兴化市| 白水县| 琼海市| 常熟市| 沙坪坝区| 昔阳县| 常山县| 甘南县| 肇东市| 邮箱| 察隅县| 中牟县| 闸北区| 中卫市| 普安县| 镇江市| 阿拉尔市| 富顺县| 江达县| 牡丹江市| 固镇县| 沂水县| 姚安县| 平塘县| 海原县| 太保市| 平遥县| 黄大仙区| 湘潭县| 云安县| 砚山县| 南召县| 古蔺县| 扎赉特旗| 巩留县| 大足县| 辽宁省| 绥棱县|