python後端開發面試總結

bajie_new發表於2021-01-10

網路協議

通訊計算機雙方必須共同遵從的一組約定,只有遵守這個約定,計算機之間才能相互通訊交流

  


TCP / IP

    TCP/IP(傳輸控制協議/網際協議)是指能夠在多個不同網路間實現資訊傳輸的協議簇。TCP/IP協議不僅僅指的是TCP 和IP兩個協議,而是指一個由FTP、SMTP、TCP、UDP、IP等協議構成的協議簇, 只是因為在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱為TCP/IP協議
# TCP(傳輸控制協議)
""" TCP 為應用程式提供了可靠的傳輸流和虛擬連線服務。TCP主要提供資料流轉送,可靠傳輸,有效流控制,全雙工操作和多路傳輸技術 """
# IP(網際協議)
""" 提供一種無連線、不可靠的、盡力而為的資料包傳輸服務 """

HTTP

# HTTP(超文字傳輸協議)
""" HTTP基於TCP/IP協議,無狀態;短連結;被動響應;工作在應用層(客戶與伺服器建立連線;客戶向伺服器提出請求;伺服器接受請求,並根據請求返回相應的檔案作為應答;客戶與伺服器關閉連線) """

restfull API 規範

"""
1, 域名
2, 版本
3, 路徑
4, HTTP動詞
5, 過濾
6, 狀態碼
7, 錯誤處理
8, 返回結果
9, 超媒體
0, 其他
"""

Django與Flask

# Flask
1:輕量級web框架,只有一個核心,預設依賴兩個外部庫:Jinja2 模板引擎和 Werkzeug WSGI 工具集,自由,靈活,可擴充套件性強
2:適用於做小型網站以及web服務的API,開發大型網站無壓力,架構需自行設計
3:與關係型資料庫結合不弱於Django,而與非關係型資料庫的結合遠遠優於Django
​
# Django
1:重量級web框架,功能齊全,提供一站式解決的思路,能讓開發者不用在選擇應用上花費大量時間
2:自帶ORM(Object-Relational Mapping 物件關聯對映)和模板引擎,支援JinJa等非官方模板引擎,靈活度不高
3:自帶ORM使Django和關係型資料庫耦合度過高,如果要使用非關係型資料庫,需要使用第三方庫
4:自帶資料庫管理app
5:成熟、穩定、開發效率高、相對於Flask,Django的整體封閉性比較好,適合做企業級網站的開發
6:python web框架的先驅,第三方庫豐富
7:上手容易,開發文件詳細、完善、資料豐富

CBV與FBV

# FBV (function base views)
""" 在檢視裡使用函式處理請求,基本簡單示例 """
path(r'longin/', views.login)         # 路由
​
def login(request):                   # 檢視函式
    return  HTTPResponse("ok")
​
​
# CBV (class base views)
""" 就是在檢視裡使用類處理請求,基本簡單示例 """
path(r'longin/', Login.as_view())     # 路由
​
class Login(View):
    def get(self, request):
        return  HTTPResponse("ok")
    
# 擴充
""" CBV內部封裝的dispatch方法,通過反射進行不同請求方法的分發,本質和FBV是一樣的 """

ORM

# ORM (Object Relational Mapping) 物件關係對映
""" 通過orm將程式語言的物件模型和資料庫的關係模型建立對映關係,這樣我們在使用程式語言對資料庫進行操作的時候可以直接使用程式語言的物件模型進行操作就可以了,而不用直接使用sql語言 """
​
# 優點
    1,使我們構造資料結構變得簡單易行
    2,完全不需要考慮複雜的sql語句,開發效率高
# 缺點
    1,自動化生成sql,犧牲一定的原生sql效能
    
# 擴充
    1,Django自帶的Model
    2,有名的SQLAlchemy
    3,瞭解一點各自的語句,關鍵詞

DRF

# Django REST framework 框架是一個用於構建Web API 的強大而又靈活的工具
1: 提供了定義序列化器Serializer的方法,可以快速根據 Django ORM 或者其它庫自動序列化/反序列化;
2: 提供了豐富的類檢視、Mixin擴充套件類,簡化檢視的編寫;
3: 豐富的定製層級:函式檢視、類檢視、檢視集合到自動生成 API,滿足各種需要;
4: 直觀的 API web 介面 ,可擴充套件性,外掛豐富
    
# DRF元件
1: 認證Authentication
2: 許可權Permissions
3: 限流Throttling
4: 過排Filtering
5: 分頁Pagination
6: 介面文件coreapi

JWT

# Json Web Token 驗證
​
1: 是什麼
2: 優缺點
3: 原理

  

Celery

# Celery是一個簡單、靈活且可靠的,處理大量訊息的分散式系統,專注於實時處理的非同步任務佇列,同時也支援任務排程
​
1: 適用場景
    非同步任務:將耗時操作任務提交給Celery去非同步執行,比如傳送簡訊/郵件、訊息推送、音視訊處理等
    定時任務:定時執行某件事情,比如每天資料統計等
2: 工作原理

RabbitMQ

 

git

git init                       # 當前目錄下建立空倉庫
​
配置使用者
git config --global user.name 名字
git config --global user.email 郵箱
​
git status                     # 檢視資料夾檔案狀態,紅色未管理
git add .                      # 管理所有檔案,綠色
git commit -m '第一版本'        # 生成版本
git log                        # 檢視版本commit
git reset --hard 版本號         # 回滾版本
git reflog                     # 記錄切換版本記錄
git branch 分支名               # 建立分支
git checkout 分支名             # 切換分支
git branch -a                  # 檢視所有分支
git merge 分支名                # 合併分支到master
git branch -d 分支名            # 刪除分支
git clong                      # 克隆
git pull origin master         # 將遠端master倉庫與當前master更新
git push origin dev:master     # 將本地的dev分支推送到gitee的 master 主分支上

  

資料庫

Mysql
Redis
Mongo

  

演算法與資料結構

 

 

相關文章