Skip to content

Commit 22f42fa

Browse files
committed
基础教程已更新完毕!
1 parent 1cc134c commit 22f42fa

2 files changed

Lines changed: 67 additions & 19 deletions

File tree

docs/zh/docs/tutorials/basic/Inheritance.md

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,42 @@ class MyHomeAdmin(admin.HomeAdmin):
2222
# 获取默认页面
2323
page = await super().get_page(request)
2424
# 自定义修改
25-
page.body.title = 'MyHome'
25+
# page.body.title = 'MyHome' # page.body已改为list类型,该行废弃
26+
# 修改后台首页的内页标题
27+
page.title = 'MyHome'
28+
# 后台首页主体尾部追加内容
29+
page.body.append('welcome FastApi-AMIS')
2630
...
2731
return page
2832
```
2933

3034
## 示例-2(自定义模板管理基类)
3135

36+
根目录`templates`文件夹中新建`element.html`,html内容如下:
37+
```html
38+
<!DOCTYPE html>
39+
<html lang="en">
40+
<head>
41+
<meta charset="UTF-8">
42+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
43+
<title>{{ title }}</title>
44+
</head>
45+
<body>
46+
<h1>{{ title }}</h1>
47+
<p>The current time is: {{ current_time }}</p>
48+
</body>
49+
</html>
50+
```
51+
52+
main.py增加如下代码:
3253
```python linenums="1" hl_lines="6 7 11 20"
3354
import datetime
3455

3556
from fastapi_amis_admin import admin, amis
3657

3758

3859
class MyJinja2Admin(admin.TemplateAdmin):
39-
templates: Jinja2Templates = Jinja2Templates(directory='apps/demo/templates')
60+
templates: Jinja2Templates = Jinja2Templates(directory='templates')
4061

4162

4263
@site.register_admin
@@ -53,9 +74,44 @@ class ElementTemplateAdmin(MyJinja2Admin):
5374
page_schema = amis.PageSchema(label='ElementUI', icon='fa fa-link')
5475
template_name = 'element.html'
5576

56-
```
77+
async def get_page(self, request: Request) -> Dict[str, Any]:
78+
page = await super().get_page(request)
79+
# 有别于示例1中 admin.HomeAdmin 对page的修改,这里的page来自 admin.TemplateAdmin,是一个dict
80+
page['title'] = 'Element Title' # 该行不会生效
81+
return {'current_time': datetime.datetime.now(), 'title': 'Element Content'}
5782

83+
```
5884
## 示例-3(重用模型管理类)
85+
我们在*模型管理*-示例2的基础上进行改造,将`Article`类新增一行属性`is_active: bool = False # add`,如下:
86+
```python linenums="1" hl_lines="32"
87+
class Article(Base):
88+
__tablename__ = 'article'
89+
90+
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
91+
title: Mapped[str] = mapped_column(String(200), nullable=False)
92+
description: Mapped[str] = mapped_column(String(400), default='')
93+
status: Mapped[bool] = mapped_column(Boolean, default=False)
94+
content: Mapped[str] = mapped_column(String, nullable=False)
95+
category_id: Mapped[Optional[int]] = mapped_column(Integer, ForeignKey('category.id'))
96+
is_active: bool = False # add
97+
98+
```
99+
然后我们继承原油`ArticleAdmin`重新实现一个新的page类别:
100+
```python
101+
@site.register_admin
102+
class ActiveArticle(ArticleAdmin):
103+
"""继承重用`ArticleAdmin`;此示例较为简单,实际应用可能比较复杂."""
104+
page_schema = PageSchema(label='文章管理(已激活)', icon='fa fa-file')
105+
# 自定义路由前缀
106+
router_prefix = '/article.active'
107+
108+
# 重写基础选择器
109+
async def get_select(self, request: Request) -> Select:
110+
stmt = await super().get_select(request)
111+
return stmt.where(Article.is_active == True)
112+
```
113+
此时,page中将分别有`文章管理`以及`文章管理(已激活)`,后者将只显示`is_active`为True的文章。
114+
## ~~~示例-3(重用模型管理类)~~~
59115

60116
```python linenums="1" hl_lines="32"
61117
from fastapi_amis_admin import admin

docs/zh/docs/tutorials/basic/i18n.md

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,16 @@
44

55
- 系统默认内置支持语言有:`en_US`,`zh_CN`.其他语言拓展,参考[Amis多语言](https://aisuda.bce.baidu.com/amis/zh-CN/docs/extend/i18n).
66
- 从 0.1.1 版本开始系统默认语言依次尝试设置环境变量`LANGUAGE`/`LANG` > 操作系统默认语言 > 英文`en_US`.
7-
- 可通过在项目入口文件顶部添加如下代码,进行自由切换语言.例如:
7+
- 可通过在项目入口文件顶部添加如下代码,进行自由切换语言
88

9+
在本案例中,可以直接在`adminsite.py`头部添加
910
```python linenums="1" hl_lines="1 2"
1011
from fastapi_amis_admin import i18n
1112
i18n.set_language(language='zh_CN')
13+
```
14+
根据自身需要来设置`language`,目前项目中支持:
15+
- zh_CN
16+
- en_US
17+
- de_DE
1218

13-
from fastapi_amis_admin.admin import AdminSite,Settings
14-
15-
from fastapi_amis_admin.amis.components import PageSchema
16-
17-
# 创建AdminSite实例
18-
site = AdminSite(settings=admin.Settings(database_url_async='sqlite+aiosqlite:///amisadmin.db'))
19-
20-
# 注册管理类
21-
@site.register_admin
22-
class GitHubIframeAdmin(admin.IframeAdmin):
23-
# 设置页面菜单信息
24-
page_schema = PageSchema(label='AmisIframeAdmin', icon='fa fa-github')
25-
# 设置跳转链接
26-
src = 'https://github.com/amisadmin/fastapi_amis_admin'
27-
```
19+
项目国际化翻译文件路径位于`fastapi_amis_admin\locale`,可依据自身需要增加语言文件夹,并通过修改po文件后生成mo文件。

0 commit comments

Comments
 (0)