创建应用程序

使用 bench 命令行工具创建一个 Frappe 应用脚手架。

创建应用

在开始之前,请确保你位于 bench 目录中。要确认这一点,请运行 bench find .

$ bench find .
/home/frappe/frappe-bench is a bench directory!

要创建我们的图书馆管理应用,请运行 new-app 命令:

bench new-app library_management

你会看到一些提示和类似下面的输出。你可以手动输入信息,或者直接按回车选择默认值。

App Title (default: Library Management):
App Description: Library Management System
App Publisher: Faris Ansari
App Email: [email protected]
App Icon (default 'octicon octicon-file-directory'):
App Color (default 'grey'):
App License (default 'MIT'):
'library_management' created at /home/frappe/frappe-bench/apps/library_management

Installing library_management
$ ./env/bin/pip install -q -U -e ./apps/library_management
$ bench build --app library_management
yarn run v1.22.4
$ FRAPPE_ENV=production node rollup/build.js --app library_management
Production mode
✔ Built js/moment-bundle.min.js
✔ Built js/libs.min.js
✨  Done in 1.95s.

系统会提示你填写应用的相关信息,填写完成后,一个名为 library_management 的应用将在 apps 文件夹中创建。

要查看 octicons 图标库中所有支持的图标完整列表,请访问 https://primer.style/octicons/

应用目录结构

你的应用目录结构应该类似于这样:

apps/library_management
├── README.md
├── library_management
│   ├── hooks.py
│   ├── library_management
│ │ └── __init__.py
│ ├── modules.txt
│ ├── patches.txt
│ ├── public
│ │ ├── css
│ │ └── js
│ ├── templates
│ │ ├── __init__.py
│ │ ├── includes
│ │ └── pages
│ │ └── __init__.py
│ └── www
└── pyproject.toml
  • library_management: 此目录将包含你应用的所有源代码

    • public: 存放静态文件,生产环境中将由 Nginx 提供这些文件
    • templates: 用于渲染 Web 视图的 Jinja 模板
    • www: 根据其目录路径提供服务的网页
    • library_management: 应用自带的默认模块
    • modules.txt: 应用中定义的模块列表
    • patches.txt: 用于数据库迁移的补丁条目
    • hooks.py: 用于扩展或拦截框架提供的标准功能的钩子
    • pyproject.toml: 指定应用的构建方式,你可以在此处可选地添加第三方 Python 依赖,这些依赖会在应用安装时被安装。

下一步:创建站点