辅助方法

未匹配的标注

Masonite 有几个可用的助手函数。许多助手函数在内部用于帮助编写干净的 Masonite 代码,但也可以在你的项目中使用。

Url

Url

Url 帮助器允许你创建完整路径 URL:

from masonite.helpers import url

url.url("/dashboard")
#== example.com/dashboard

URL 将来自应用程序配置文件中的 APP_URL

它接受一个字典来在构建 url 时添加查询字符串参数:

url.url("/search/users",  query_params={"search": "John Doe" "order": "asc"})
#== http://masonite.app/users/?search=John%2Doe&order=asc

Asset

你还可以为静态资源生成 URL:

url.asset("s3.invoices", "invoice-01-2021.pdf")

Route

你还可以通过路由名称为路由生成 URL:

url.route("users.profile", {"id": 1})
#== http://masonite.app/users/1/profile/

你也可以只生成一个路径:

url.route("users.profile", {"id": 1}, absolute=False)
#== /users/1/profile/

在构建路由 url 时,它接受一个字典来添加查询字符串参数:

url.route("user.profile", {"id": 1}, query_params={"preview": 1})
#== http://masonite.app/users/1/profile/?preview=1

Compact

当你想从变量编译字典时,Compact 助手函数是一个快捷助手函数。

有时你会遇到这样的情况:

from masonite.view import View

def show(self, view: View):
  users = User.all()
  articles = Article.all()
  return view.render('some.view', {"users": users, "articles": articles})

请注意,我们重复了 usersarticles 键作为变量名称。 在这种情况下,我们可以使用 compact 助手函数来清理代码:

from masonite.view import View
from masonite.helpers import compact

def show(self, view: View):
  users = User.all()
  articles = Article.all()
  return view.render('some.view', compact(users, articles))

Optional

Optional 助手函数接受一个对象并允许对该对象进行任何方法调用。如果该方法存在于对象上,它将返回值,否则将返回 None:

你可能有一段看起来像这样的代码:

if request.user() and request.user().admin == 1:
  #.. do something

使用 Optional 助手函数,你可以将代码压缩成如下内容:

from masonite.helpers import optional

if optional(request.user()).admin == 1:
  #.. 某段业务逻辑

Dump

你可以轻松地将变量转储到控制台进行调试,例如从控制器内部:
为此,你可以使用 Dump 门面或内置的 dump python 方法:

from masonite.facades import Dump

test = 1
data = {"key": "value"}
Dump.dump(test, data)

# 或者

dump(test, data)

这将以一种很好的格式在控制台中转储数据以简化调试。

Dump and Die

如果你希望代码停止并呈现转储页面,则可以使用命名为 dd 的转储并终止助手函数

from masonite.facades import Dump

test = 1
data = {"key": "value"}
Dump.dd(test, data)

# 或者

dd(test, data)

这将在这一行停止代码并呈现一个漂亮的转储页面,你可以在其中看到所有转储到现在的变量。

提示:请注意,转储会累积到会话中。 如果要清除转储,可以使用 Dump.clear() 或启用 HTTP 中间件 ClearDumpsBetweenRequestsMiddleware 以清除每个请求之间的转储。

Kernel.py

from masonite.middleware import ClearDumpsBetweenRequestsMiddleware

class Kernel:

    http_middleware = [
        #...
        ClearDumpsBetweenRequestsMiddleware
    ]

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/4.0/fe...

译文地址:https://learnku.com/docs/masonite/4.0/fe...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 查看所有版本


暂无话题~