Frappe 应用是一个使用 Frappe 框架的 Python 包。Frappe 应用位于apps 目录下的 frappe-bench 目录中。
默认应用 frappe 是一个 Frappe 应用,它充当所有应用的基础框架。
每个 Frappe 应用都必须在 apps.txt 中有一个条目。
创建应用
Frappe 自带一个新应用的模板。要创建新应用,请在 frappe-bench 目录下
运行以下命令。
$ bench new-app custom_app
INFO:bench.app:creating new app custom_app
App Title (default: Custom App):
App Description: Custom Frappe App
App Publisher: John Doe
App Email: [email protected]
App Icon (default 'octicon octicon-file-directory'):
App Color (default 'grey'):
App License (default 'MIT'):
'custom_app' created at /Users/johndoe/frappe-bench/apps/custom_app
INFO:bench.app:installing custom_app
INFO:bench.utils:./env/bin/pip install -q -e ./apps/custom_app
现在,custom_app 目录将在 apps 目录中创建。它
也会被添加到 apps.txt 中。
目录结构
应用的目录结构大致如下:
apps/custom_app
├── MANIFEST.in
├── README.md
├── custom_app
│ ├── __init__.py
│ ├── config
│ │ ├── __init__.py
│ │ ├── desktop.py
│ │ └── docs.py
│ ├── custom_app
│ │ └── __init__.py
│ ├── hooks.py
│ ├── modules.txt
│ ├── patches.txt
│ ├── public
│ │ ├── css
│ │ └── js
│ ├── templates
│ │ ├── __init__.py
│ │ └── includes
│ └── www
├── license.txt
├── requirements.txt
├── dev-requirements.txt
├── package.json
└── setup.py
requirements.txt
此文件存储 Python 依赖项列表。安装此应用时,
其依赖项也会一并安装。
dev-requirements.txt [可选]
此文件存储 Python 开发依赖项列表。此文件的语法与
requirements.txt 相同。如果启用了开发者模式,那么
安装应用时也会安装其开发依赖项。
package.json
此文件用于跟踪 Node 依赖项。在此处了解更多信息。
customapp
这是存储源文件的目录。
customapp/customapp
当您创建新应用时,会在应用内部创建一个同名的模块。
此目录即对应于该模块。
customapp/hooks.py
此文件用于挂钩 Frappe 事件,并扩展或覆盖 Frappe 的
标准行为。
了解更多关于 hooks 的信息。
customapp/modules.txt
每个 Frappe 应用都组织为不同的模块。每个 DocType 都属于某个
模块。这些模块都列在此文件中。
了解更多关于模块的信息。
customapp/patches.txt
此文件用于存储数据库迁移过程中运行的补丁引用。
这些补丁按顺序运行,并且每个补丁只运行一次。
了解更多关于数据库迁移的信息。
customapp/public
public 文件夹是一个静态文件夹,在生产环境中可以由 nginx 提供服务。
放在这里的文件可以通过 URL /assets/custom_app/**/* 访问。
例如,文件 public/img/logo.png 可以通过 URL/assets/custom_app/img/logo.png 访问。
此文件夹用于存储直接在客户端使用的静态资源,
如 JS、CSS 和图片。
customapp/templates
templates 文件夹用于编写和管理 Jinja 模板。您可以按照
任何方式组织它们。当您在 Jinja 模板中使用它们时,
此目录会被直接扫描。
例如,当您包含一个局部模板 {% include "templates/navbar/navbar.html" %} 时,
它会首先扫描此目录,然后回退到其他应用。
customapp/www
此目录中的文件直接映射到门户页面,URL 与
目录结构相匹配。
了解更多关于门户页面的信息。
将应用安装到站点
要使用应用,必须将其安装到站点上。将应用安装到站点意味着
将应用捆绑的模型创建到站点中,也就是说,
在站点数据库中创建数据库表。
要将应用安装到站点,请运行以下命令:
$ bench --site site_name install-app custom_app
Installing custom_app...
要检查应用是否安装正确,请运行以下命令:
$ bench --site site_name list-apps
frappe
custom_app