近日的工程實踐中須要搭建一個簡易的服務器,提供RestFul的接口。爲了快速搭建起服務器(暫時不考慮併發性能),初步調研後決定使用Django來搭建服務器。如下是對其源碼的簡單分析。python
django的頂層目錄主要存放一些安裝配置文件,其核心的功能實現位於django文件夾中,文檔存放於docs,測試用例位於tests文件夾。django
再看其核心的實現,能夠直觀地看出django使用的是MVT的架構,以及其核心組成。經過這兩層目錄咱們能夠看到,django文件夾以及文件(除簽名等文件)的命名均使用小寫字母,單詞見使用_分隔。其核心組件主要有模型(ORM框架),用戶管理界面,URL控制器,模板語言以及緩存系統緩存
這裏選取中間件中的 clickjacking.py來進行分析服務器
首先是開頭的註釋,文件的多行註釋使用三引號包裹,單行註釋使用#號。通常在文件開頭經過多行註釋說明文件的功能以及使用方式,在函數的開頭說明函數的功能。採用面向對象的設計方式,類名以大寫字母開頭,使用駝峯命名法。函數名使用小寫字母,以_分隔,變量名同函數名。這些作法都符合Python代碼規範和風格通常要求,遵循了「代碼的簡潔、清晰、無歧義」的基本原則。架構
1.不要在行尾加分號, 也不要用分號將兩條命令放在同一行。併發
2.每行儘可能避免超過80個字符框架
3.用4個空格來縮進代碼,絕對不要用tab, 也不要tab和空格混用. ide
4.頂級定義之間空兩行, 方法定義之間空一行函數
5.大部分.py文件沒必要以#!做爲文件的開始. 根據 PEP-394 , 程序的main文件應該以 #!/usr/bin/python2或者 #!/usr/bin/python3開始.性能
6.類應該在其定義下有一個用於描述該類的文檔字符串. 若是你的類有公共屬性(Attributes), 那麼文檔中應該有一個屬性(Attributes)段. 而且應該遵照和函數參數相同的格式.