Python命名约定

Python命名约定,python,flask,flask-restful,Python,Flask,Flask Restful,我正在使用Flask Restful在python应用程序中实现REST api。我有一个模型模块、一个业务模块和一个控制器模块。这是在login_controller.py文件中定义的我的一个控制器 from flask.ext.restful import Resource,request,reqparse from app.business.login import Login from app.models.models import User, Address class Login

我正在使用Flask Restful在python应用程序中实现REST api。我有一个模型模块、一个业务模块和一个控制器模块。这是在login_controller.py文件中定义的我的一个控制器

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
现在,我对将上述文件命名为控制器不太满意?“PYTHONIC”的方法是什么

  • 命名该文件
  • 给班级命名
    我见过一些人将这些类命名为视图。如果我路由到一个模板,但我提供的是普通的旧json,这似乎很好?你们觉得怎么样?

    Python标准命名约定如所示。您询问了文件名和类名。约定(通常是您的文件名):

    模块应该有简短的、全小写的名称。下划线可以是 如果提高可读性,则在模块名称中使用。Python包 也应该有简短的、全小写的名称,尽管使用 不鼓励使用下划线

    因为模块名映射到文件名,而某些文件系统 不区分大小写并截断长名称,模块 名称应选择得相当短--在Unix上这不会是问题, 但当代码被传输到较旧的Mac或PC机时,可能会出现问题 Windows版本或DOS

    当用C或C++编写的扩展模块有一个伴随 提供更高级别(例如更面向对象)的Python模块 接口,C/C++模块有一个前导下划线(例如_socket)

    以及:

    几乎毫无例外,类名使用大写字母约定。 内部使用的类还有一个前导下划线

    就这样。对于是否将其称为“控制器”、“视图”或“资源”,甚至在名称中是否包含“控制器”或“视图”,都没有约定。这里没有正式的“python约定”,特别是考虑到web应用程序只是python功能的一小部分。只要项目中的其他开发人员理解“控制器”和“视图”的含义,您就应该很好。不要想得太多,也不要指望别人能给出正确的名称;这正是我们作为开发人员的负担:)

    但是,如果您将其称为
    LoginController
    ,请确保它是
    LoginController
    ,而不是
    Login\u Controller

    您可以遵循PEP 8(),这是一种更具python风格的方式。你也可以用这个,我觉得很好


    在这个特定的例子中,我将为所有控制器使用一个名为controller的文件,我的类将命名为Login。但是,如果你真的喜欢使用login.py作为你的模块,那么我认为最好用controller来命名你的控制器。

    那么
    login\u controller.py
    ->
    controller.py
    login\u controller
    login
    ?但是业务逻辑已经在login.py模块中了吗?如何区分此模块和业务模块?能否显示您的项目结构?如果您不想在类中包含“Controller”一词,并且您已经有一个登录模块,则始终可以将此类简称为Authorization或Auth,然后使用authorization.py和您的路径/api/authorization非常感谢您提供了如此详细的答案。现在,我应该将所有控制器类放在一个模块中,将类似的控制器分组到一个模块中,还是将每个控制器放在一个单独的模块中。@BadLuckBrian:再一次,这完全取决于您。做你认为最有效的事。以后你可以随时更改它。