2013-10-09 12 views
0

내 Python 응용 프로그램에서 REST API를 구현하는 데 Flask-Restful을 사용하고 있습니다. 모델 모듈, 비즈니스 모듈 및 컨트롤러 모듈이 있습니다. 이것은 내가 컨트롤러 위의 파일 이름을 지정 정말 만족하지 오전 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 

에 정의 된 내 컨트롤러 중 하나는?

  1. 파일의 이름을
  2. 이름 클래스에 "파이썬"방법은 무엇입니까.

이러한 클래스의 이름을보기로 한 사람들이 있습니다. 이것은 템플릿으로 라우팅되었지만 평범한 오래된 json을 제공한다면 괜찮습니까? 너희들 뭐라고 말 할까?

+0

'login_controller.py' ->'controller.py'와'Login_Controller' ->'Login'은 어떻습니까? – alexvassel

+0

하지만 비즈니스 로직이 이미 login.py 모듈에 있습니까? 이 모듈과 비즈니스 모듈을 구별하는 방법은 무엇입니까? – AndroidDev

+0

프로젝트 구조를 보여줄 수 있습니까? – alexvassel

답변

2

파이썬 표준 명명 규칙은 PEP 8입니다. 파일 이름과 클래스 이름에 대해 질문했습니다. (일반적으로 파일 이름) 규약 :

모듈 이름은 모두 소문자로 소문자 여야합니다. 가독성을 높이려면 모듈 이름에 밑줄을 사용하면 이 될 수 있습니다. 밑줄을 사용하는 것은 권장되지 않지만 Python 패키지 도 모두 짧은 소문자 이름을 사용해야합니다.

모듈 이름이 파일 이름을 매핑, 일부 파일 시스템이 대소 문자를 구분하고 긴 이름을자를 수 있습니다 때문에,이 모듈 이름이 매우 짧은 것으로 선택하는 것이 중요하다 - 이것은 유닉스에 문제가되지 않습니다 , 이지만 이전 Mac이나 Windows 버전 또는 DOS로 코드를 전송할 때 문제가 될 수 있습니다.

C 또는 C++로 작성된 연장 모듈은, 상위 레벨을 제공하는 첨부 파이썬 모듈이

(예컨대 _socket) 인터페이스는 C/C++ 모듈은 밑줄을 갖는다 (예를 들어 더 객체 지향적).

그리고 class names에 대한

는 :

거의 예외없이, 클래스 이름은 CapWords 규칙을 사용합니다. 내부 용 클래스에는 추가로 밑줄이 있습니다.

그게 전부입니다. "컨트롤러"또는 "뷰"또는 "리소스"라고 부르는 지 또는 심지어 이름에 "컨트롤러"또는 "보기"와 같은 것이있는 경우에도 컨벤션이 없습니다. 파이썬이 할 수있는 것 중 웹 애플리케이션이 단지 작은 부분 일 뿐이라는 점을 감안할 때 공식 "파이썬 규칙"은 없습니다. 프로젝트의 다른 개발자가 "컨트롤러"와 "보기"가 무엇을 의미하는지 이해한다면 괜찮습니다. 이 생각을 끝내지 말고 다른 사람이 무엇에 이름을 붙일 것인가에 관해 올바른 대답을 기대하지 마십시오. 개발자로서의 부담은 바로

LoginController입니다. LoginController이 아닌 Login_Controller이 맞는지 확인하십시오.

+0

이렇게 상세한 답변을 부탁드립니다. 이제는 모든 컨트롤러 클래스를 하나의 모듈에 그룹화하거나 유사한 컨트롤러를 모듈에 그룹화하거나 각 컨트롤러를 별도의 모듈에 배치해야합니다. – AndroidDev

+0

@BadLuckBrian : 다시 한번 말하지만, 그것은 완전히 당신에게 달려 있습니다. 당신이 느끼는 것을 가장 잘합니다. 나중에 언제든지 변경할 수 있습니다. –

0

당신은 PEP 8 (http://www.python.org/dev/peps/pep-0008/#package-and-module-names)을 따를 수 있습니다. 더 pythonic입니다. Google Style Guide을 사용할 수도 있습니다.

이 특정 경우에는 내가 에 대한 컨트롤러 모든 컨트롤러라는 이름의 하나 개의 파일을 사용하고, 내 수업은 로그인 이름을 지정해야합니다. 그러나, 만약 당신이 정말로 모듈에 대한 login.py를 선호한다면 Controller로 컨트롤러의 이름을 더 잘 정했다고 생각합니다.