【问题标题】:I want to create a reusable function in Django我想在 Django 中创建一个可重用的函数
【发布时间】:2018-03-02 10:48:03
【问题描述】:

我是 django 的新手,并且一直在从事一个项目,我需要从我的 django 项目中的不同模块定期向我的客户发送邮件。

我想知道 django 中是否有任何规定,我可以使用它来创建一个可在我的项目中全局使用的可重用组件。

目的是使用第三方api创建一个邮件发送函数,并通过传递所需的参数从我的应用程序的任何地方调用它。

【问题讨论】:

  • 您可以在任何应用程序中定义函数。您也可以在应用程序的任何地方使用它
  • @itzMEonTV 是的,我知道 Django 中存在该选项。我只需要知道我是否可以创建一个单独的文件/函数,该文件/函数与任何模块无关,而仅与使用它的目的有关。谢谢

标签: django django-mailer


【解决方案1】:

假设您的项目中有一个 django 应用程序,您可以在应用程序文件夹中的 methods.py 文件中定义所有可重用方法,然后将其导入以使用这些函数。

如果您有多个应用程序,则在您的一个应用程序中定义创建此methods.py。现在假设您的项目名称为coolprojectname,而具有methods.py 的应用名称为appwithmethodsscript,那么您可以使用

from coolprojectname.appwithmethodsscript import methods

Reference

【讨论】:

  • 模块名称中不允许使用破折号 (-),模块名称应为小写。
  • 谢谢@Anuj 即使我也有同样的想法。但是由于一些框架允许选择创建一个像类这样的通用插件,以便从我认为 django 也可能有的任何地方调用。谢谢
  • @VivekCu 如果您对答案感到满意,可以将其标记为正确答案吗?
【解决方案2】:

Django 遵循 python 的规则。

因此,您可以在任何地方定义一个函数,并将其导入到任何您想使用的地方。

这个工作的唯一条件是让你的包遵循正确的结构(即一个有__init__.py文件的目录)

【讨论】:

  • 感谢@Adelin 即使我也在考虑同样的过程。由于我不希望邮件发送(一个常用功能)驻留在与它无关的模块中,所以我问了这个问题。还是谢谢
  • 或许您最好将该功能添加到“用户管理器”中。另外,不要忘记,如果这回答了您的问题,则应将其标记为这样
猜你喜欢
  • 1970-01-01
  • 2011-12-30
  • 2015-08-31
  • 1970-01-01
  • 2021-09-03
  • 2019-10-07
  • 1970-01-01
  • 2018-02-22
  • 2017-05-24
相关资源
最近更新 更多