2013-10-09 256 views
0

我正在使用Flask-Restful在我的python應用程序中實現REST api。我有一個模型模塊,一個商業模塊和一個控制器模塊。這是一個login_controller.py文件Python命名約定

from flask.ext.restful import Resource,request,reqparse 
from app.business.login import Login 
from app.models.models import User, Address 

class Login_Controller(Resource): 

    def __init__(self): 
     pass 
    def get(self): 
     loginBO=Login() 
     obj=loginBO.getAllUsers() 
     return {"users":obj}, 201 
    def post(self): 
     pass 
    def delete(self): 
     loginBO=Login() 
     status =loginBO.deleteUser(request.json) 
     if status: 
      return {"status":"true"},201 
     else: 
      return {"status":"false"},401 
    def put(self): 
     loginBO=Login() 
     status =loginBO.addUser(request.json) 
     if status: 
      return {"status":"true"},201 
     else: 
      return {"status":"false"},401 

現在定義我不是真正滿意命名上述文件控制器我的控制器之一?什麼是「Python化」的方式來

  1. 文件命名爲
  2. 名稱的類。

我看到一些人將這些類命名爲視圖。這似乎很好,如果我路由到一個模板,但我服務普通的舊json?什麼說你們?

+0

'login_controller.py' - >'controller.py'和'Login_Controller' - >'Login'? – alexvassel

+0

但是業務邏輯已經在login.py模塊中了?如何區分這和業務模塊? – AndroidDev

+0

你能展示你的項目結構嗎? – alexvassel

回答

2

Python標準命名約定顯示在PEP 8中。你問了關於文件名和類名。約定爲package and module names(通常是你的文件名):

模塊應該有短的全小寫名稱。如果提高可讀性,則可以在模塊名稱中使用下劃線 。 Python程序包 也應該有簡短的全小寫名稱,儘管使用 下劃線是不鼓勵的。

由於模塊名稱映射到文件名,並且某些文件系統是 不區分大小寫並截斷長名稱,因此重要的是要將模塊名稱選擇得相當短 - 在Unix上這不會成爲問題, ,但當代碼被傳輸到較舊的Mac或Windows版本或DOS時,可能會出現問題。當用C或C++編寫的擴展模塊有一個附帶的 提供更高級別(例如更多面向對象) 接口的Python模塊時,C/C++模塊具有前導下劃線(例如_socket)。

而對於class names

幾乎沒有例外,類名使用CapWords約定。 內部使用的類另外還有一個下劃線。

就是這樣。對於是否將其稱爲「控制器」,「視圖」或「資源」,或者即使您甚至在名稱中甚至具有「控制器」或「視圖」之類的東西,也沒有任何約定。這裏沒有官方的「python約定」,特別是考慮到web應用程序只是Python能做的一小部分。只要您的項目中的其他開發人員瞭解「控制器」與「視圖」的含義,您應該沒問題。不要過多考慮這個問題,也不要指望別人有什麼可以說出正確的答案。這只是我們作爲開發人員的負擔:)

但是,如果您將其稱爲LoginController,請確保它是LoginController而不是Login_Controller

+0

非常感謝你這麼詳細的回答。現在,我應該將所有控制器類放在一個模塊中,將類似的控制器分組到一個模塊,或者將每個控制器放在一個單獨的模塊中。 – AndroidDev

+0

@BuckLuckBrian:再一次,這完全取決於你。做你覺得最好的工作。您可以隨時更改。 –