Python 多个装饰器和调用函数
Python Multiple decorators and calling functions
这个问题可以是一个简单的问题。
我有两个 python 装饰器,其内部功能如下:
@app.route('/insertsql', methods=['GET', 'POST'])
def insertsql():
@app.route('/login', methods=['GET', 'POST'])
def login():
我想在 insertsql()
函数中使用 login()
函数。那可能吗 ?当我尝试时,我得到这个错误
Bad Request The browser (or proxy) sent a request that this server
could not understand.
有什么建议吗?
有几种不同的方法可以解决这个问题。如果您想确保用户在 运行 该操作之前登录,您可以使用装饰器。
@auth.login_required
def before_request():
但是,您可能真的只是想在一条路线中做两件事。我喜欢通过将 Flask 应用程序分解成不同的组件来处理这个问题。路由、控制器和模型。通过这种方式,一个路由可以调用多个控制器操作,其中的逻辑不会与您的路由紧密耦合,并且可以轻松地重复使用。
项目结构:
├── app.py
├── config.py
├── controllers
│ └── cases.py
├── manage.py
├── models
│ └── case.py
├── routes
│ └── v1
│ ├── api_cases.py
│ └── api_test.py
├── services
└── templates
代码组织:
控制器:
从路由调用。粘附在负责处理请求的应用程序中。通过使用视图的 Services
和 return 结果中的业务逻辑在 Models
中获取数据来工作。应该验证用户输入。
控制器操作:Reference Guide
- 指数
- 显示
- 创建
- 更新
毁灭
- 复数文件名:例如:
cases.py
- 复数 class 名称:例如:
Cases
型号:
数据库交互相关代码在此。负责数据的完整性。
- 单数文件名:例如:
case.py
- 单数class姓名:例如:
Case
路线:
处理 URI 请求,这些是 Flask 中的蓝图。通话 Controllers
。使用 v1
组织成 api 的命名空间版本。 API 相关路线在此目录中。
- 复数文件名,带
api
前缀:例如:api_cases.py
这个问题可以是一个简单的问题。
我有两个 python 装饰器,其内部功能如下:
@app.route('/insertsql', methods=['GET', 'POST'])
def insertsql():
@app.route('/login', methods=['GET', 'POST'])
def login():
我想在 insertsql()
函数中使用 login()
函数。那可能吗 ?当我尝试时,我得到这个错误
Bad Request The browser (or proxy) sent a request that this server could not understand.
有什么建议吗?
有几种不同的方法可以解决这个问题。如果您想确保用户在 运行 该操作之前登录,您可以使用装饰器。
@auth.login_required
def before_request():
但是,您可能真的只是想在一条路线中做两件事。我喜欢通过将 Flask 应用程序分解成不同的组件来处理这个问题。路由、控制器和模型。通过这种方式,一个路由可以调用多个控制器操作,其中的逻辑不会与您的路由紧密耦合,并且可以轻松地重复使用。
项目结构:
├── app.py
├── config.py
├── controllers
│ └── cases.py
├── manage.py
├── models
│ └── case.py
├── routes
│ └── v1
│ ├── api_cases.py
│ └── api_test.py
├── services
└── templates
控制器:
从路由调用。粘附在负责处理请求的应用程序中。通过使用视图的
Services
和 return 结果中的业务逻辑在Models
中获取数据来工作。应该验证用户输入。控制器操作:Reference Guide
- 指数
- 显示
- 创建
- 更新
毁灭
- 复数文件名:例如:
cases.py
- 复数 class 名称:例如:
Cases
- 复数文件名:例如:
型号:
数据库交互相关代码在此。负责数据的完整性。
- 单数文件名:例如:
case.py
- 单数class姓名:例如:
Case
- 单数文件名:例如:
路线:
处理 URI 请求,这些是 Flask 中的蓝图。通话
Controllers
。使用v1
组织成 api 的命名空间版本。 API 相关路线在此目录中。- 复数文件名,带
api
前缀:例如:api_cases.py
- 复数文件名,带