Python命名约定
我正在使用Flask Restful在python应用程序中实现REST api。我有一个模型模块、一个业务模块和一个控制器模块。这是在login_controller.py文件中定义的我的一个控制器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
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:再一次,这完全取决于您。做你认为最有效的事。以后你可以随时更改它。