Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

Django

Python的前端開發框架。

可以開發Web Application(Web Service, Web API)。

包含眾多元件

  • MVT架構
  • Web cashing
  • Authorization
  • ORM(DB mapping)
  • URL mapping

軟體結構模式

  • MVC: Spring MVC

Model: handle DB: 資料,邏輯
View: 用戶介面,展示資料
Controller: 處理用戶請求,控制

URL- Controller-Model/View
Controller 和 View 之間不夠獨立
ViewController 最後需要處理很多事情
Controller 測試困難,View 層的控制能力太弱

  • MVT: Django

Model: handle DB: 資料,邏輯
View: 處理用戶請求,控制(傳資料給Template)
Template: 用戶介面,展示資料

HTML
{{ variable }}: 顯示變量
{% tag %}: 控制邏輯

本質MVC
有URL Mapping

  • MVP: 更改後的MVC

Model: handle DB: 資料,邏輯
View: 用戶介面,展示資料
Presenter 是 View 與 Model 交互的中間樞紐,處理與用戶交互的邏輯

Presenter 真正獨立出來,所以測試的時候就可以獨立測試 Presenter 業務邏輯了

  • MVVM: 大量交互應用,雙向數據綁定

Model: handle DB: 資料,邏輯
View: 用戶介面,展示資料
ViewModel: 跟View自動同步

URL-View-Model/Template

特色

1.ORM
用Python object存取DB, 就像Spring Boot的 Hibernate: 不用直接寫SQL,方便使用Django的ORM系統進行基本的ETL操作

2.Migration
Django資料庫結構更改的方式,可以在不丟失數據的情況下更新

3.模板繼承
就像Java 繼承,可以重覆使用,部份覆寫

4.信號系統(signal)
允許某些動作與其他動作關聯,例如,在保存模型時自動觸發某一功能

5.安全
* Django ORM可以避免SQL注入因為它自動處理SQL查詢的轉譯和安全
* 使用中間件(Middleware請求到響應間過程)和模板標籤來自動處理CSRF(欺騙用戶執行不希望的動作)保護
* 使用PBKDF2來對密碼進行hash處理,並存儲hash值

6.加快開發流程
* 簡化API開發:Django REST framework是一個建立API的工具包
* 很多Build-in libraries

FastAPI

目前僅次Node.js最快python 框架,簡單易用,可以生成API 文件,適合開發高性能API,非同步操作。

專注於使用Python的型別提示提供自動的請求驗證、序列化和API文檔生成,不像Django 那麼全方位,使用Starlette進行非同步操作,性能比Django好。

Flask

設計比FastAPI更簡單,在不安裝其他擴充下支援基本路由,模板,同步操作,I/O密集型操作效能比FastAPI差。

安裝Django

1
$ python -m pip install Django

安裝FastAPI


如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels