Skip to main content

将标准 Flask 变成 mvc

项目描述

GitHub 代码大小(以字节为单位) GitHub 工作流状态 GitHub PyPI - 下载 PyPI - Python 版本 派皮

您可以使用此扩展在您的烧瓶应用程序中使用 mvc 模式。

这个现实世界的实现FLASK MVC示例:https ://github.com/negrosdev/negros.dev

安装

运行以下命令进行安装mvc_flask

$ pip install mvc_flask

配置

要配置mvc_flask您需要在应用程序中导入和注册,例如:

from flask import Flask
from mvc_flask import FlaskMVC

app = Flask(__name__)
FlaskMVC(app)

或使用application factories,例如:

mvc = FlaskMVC()

def create_app():
  ...
  mvc.init_app(app)

默认情况下,mvc_flask假设您的应用程序目录将是app,如果它不存在,则创建它! 如果可以使用其他目录,可以在path初始化 FlaskMVC 实例时使用该参数。例如:

mvc = FlaskMVC()

def create_app():
  ...
  mvc.init_app(app, path='src')

现在,您可以将src其用作准备应用程序的默认目录。

你的结构应该是这样的:

app
├── __ini__.py
├── controllers
│   └── home_controller.py
├── routes.py
└── views
    ├── index.html

路由器

您可以app/routes.py在创建文件中和之后创建路由,您可以开始注册路由,例如:

from mvc_flask import Router

Router.get("/", "home#index")

必须对POST,PUTDELETE方法进行同样的操作。例如:Router.post("/messages", "messages#create")

第一个参数表示相对路径,第二个参数表示controller#action. 请记住,我们正在使用MVC pattern,所以我们有controlleraction

controller可以在其中创建,app/controllers并且操作是 的方法controller

您可以使用Router.all()注册所有路由CRUD

Router.all("messages")

前面的命令产生这个:

messages.create  POST        /messages
messages.delete  DELETE      /messages/<id>
messages.edit    GET         /messages/<id>/edit
messages.index   GET         /messages
messages.new     GET         /messages/new
messages.show    GET         /messages/<id>
messages.update  PATCH, PUT  /messages/<id>

您还可以only parameter用来控制路线,例如:

Router.all("messages", only="index show new create")

前面的命令产生这个:

messages.index   GET      /messages
messages.show    GET      /messages/<id>
messages.new     GET      /messages/new
messages.create  POST     /messages

参数only接受stringarray,因此,您可以使用only=["index", "show", "new", "create"]

控制器

现在配置路由,home_controller.py文件必须包含HomeController类,注册action,例如:

class HomeController:
    def index(self):
        return view("index.html")

如果您有任何疑问,请查看 de app目录以获取更多详细信息。

要将钩子用作before_requestafter_request等等......只需在控制器中描述它,请参阅:

class HomeController:
    before_request = ["hi"]

    def index(self):
        return "home"

    def hi(self):
        ...

前面的例子描述了hi(self)每次访问者访问控制器时都会被调用。

意见

Flasktemplates默认使用目录来存储HTMLs文件。但是,使用mvc-flask默认值变为views. 您可以使用该app/views目录来存储模板。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

mvc-flask-2.4.0.tar.gz (5.2 kB 查看哈希)

已上传 source

内置分布

mvc_flask-2.4.0-py3-none-any.whl (5.2 kB 查看哈希

已上传 py3