1- # 插件demo (古诗展示插件:poem)
1+ # 插件 demo (古诗展示插件:poem)
22
3- > 在大家已经了解了插件机制后,我们按照插件开发规范开发了一个古诗展示插件,在这个demo中 ,你会学习到一个简单插件的整个开发流程和注意事项
3+ > 在大家已经了解了插件机制后,我们按照插件开发规范开发了一个古诗展示插件,在这个 demo 中 ,你会学习到一个简单插件的整个开发流程和注意事项
44
55### 插件目录结构
66
1717```
1818
1919## 定义路由
20+
2021首先我们在控制层文件` controller.py ` 中定义一个红图,并且定义两个视图函数
22+
2123``` python
2224from flask import jsonify
2325from lin.redprint import Redprint
@@ -42,7 +44,9 @@ def search():
4244```
4345
4446## 定义数据库模型类
47+
4548` poem ` 插件的实现的业务需要依托数据库,所以我们下面需要在模型层文件设计一个名为` Poem ` 的模型类
49+
4650``` python
4751from lin.interface import InfoCrud as Base
4852from sqlalchemy import Column, String, Integer
@@ -54,12 +58,14 @@ class Poem(Base):
5458 author = Column(String(50 ), default = ' 未名' , comment = ' 作者' )
5559 dynasty = Column(String(50 ), default = ' 位置' , comment = ' 朝代' )
5660 content = Column(String(255 ), nullable = False , comment = ' 内容' )
57-
61+
5862 ...
5963```
6064
6165## 定义数据校验类
66+
6267当我们需要校验用户传递过来的参数时,别忘了数据校验层的存在,我们在` forms.py ` 中定义一个简单的数据校验类` PoemSearchForm ` 。并在视图函数中调用。
68+
6369``` python
6470from lin.forms import Form
6571from wtforms import StringField
@@ -74,13 +80,16 @@ class PoemSearchForm(Form):
7480```
7581
7682## 导出文件
77- 基本业务逻辑已经实现,最关键的一步还要导出文件,也就是在` poem/app/__init__.py ` 中写入要被Lin的加载器自动加载的红图api和数据模型类
83+
84+ 基本业务逻辑已经实现,最关键的一步还要导出文件,也就是在` poem/app/__init__.py ` 中写入要被 Lin 的加载器自动加载的红图 api 和数据模型类
85+
7886``` python
7987from .controller import api
8088from .model import Poem
8189```
8290
8391## 用配置开启插件
92+
8493> 最后,在` app/config/setting.py ` 中添加如下配置:
8594
8695``` python
@@ -90,9 +99,11 @@ PLUGIN_PATH = {
9099 ' poem' : {' path' : ' app.plugins.poem' , ' enable' : True },
91100}
92101```
102+
93103对于该配置项的含义,已经在[ 插件使用] 一小节详细介绍。
94104
95- 至此,这个简单插件的开发已经完成了。运行项目,我们会发现收据库中会出现我们所创建的poem表。下面请打开fake.py,替换成下面的代码并执行,向表中添加一些初始数据。
105+ 至此,这个简单插件的开发已经完成了。运行项目,我们会发现收据库中会出现我们所创建的 poem 表。下面请打开 fake.py,替换成下面的代码并执行,向表中添加一些初始数据。
106+
96107``` python
97108from app.app import create_app
98109from app.plugins.poem.app.model import Poem
@@ -131,64 +142,70 @@ with app.app_context():
131142 db.session.add(poem4)
132143```
133144
134- ## 用postman调试接口
145+ ## 用 postman 调试接口
135146
136147### 获取所有诗词
137- URL
138- > GET http://localhost:5000/plugin/poem/demo/all
148+
149+ URL
150+
151+ > GET http://localhost:5000/plugin/poem/demo/all
139152
140153Response 200:
154+
141155``` json
142156[
143- {
144- "author" : " 李白" ,
145- "content" : " 危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。" ,
146- "create_time" : 1548422493000 ,
147- "dynasty" : " 唐代" ,
148- "id" : 1 ,
149- "title" : " 夜宿山寺"
150- },
151- {
152- "author" : " 刘禹锡" ,
153- "content" : " 常恨言语浅,不如人意深。今朝两相视,脉脉万重心。" ,
154- "create_time" : 1548422493000 ,
155- "dynasty" : " 唐代" ,
156- "id" : 2 ,
157- "title" : " 视刀环歌"
158- },
159- {
160- "author" : " 龚自珍" ,
161- "content" : " 浩荡离愁白日斜,吟鞭东指即天涯。落红不是无情物,化作春泥更护花。" ,
162- "create_time" : 1548422493000 ,
163- "dynasty" : " 清代" ,
164- "id" : 3 ,
165- "title" : " 己亥杂诗 · 其五"
166- },
167- {
168- "author" : " 温庭筠" ,
169- "content" : " 井底点灯深烛伊,共郎长行莫围棋。玲珑骰子安红豆,入骨相思知不知。" ,
170- "create_time" : 1548422493000 ,
171- "dynasty" : " 唐代" ,
172- "id" : 4 ,
173- "title" : " 杨柳枝"
174- }
157+ {
158+ "author" : " 李白" ,
159+ "content" : " 危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。" ,
160+ "create_time" : 1548422493000 ,
161+ "dynasty" : " 唐代" ,
162+ "id" : 1 ,
163+ "title" : " 夜宿山寺"
164+ },
165+ {
166+ "author" : " 刘禹锡" ,
167+ "content" : " 常恨言语浅,不如人意深。今朝两相视,脉脉万重心。" ,
168+ "create_time" : 1548422493000 ,
169+ "dynasty" : " 唐代" ,
170+ "id" : 2 ,
171+ "title" : " 视刀环歌"
172+ },
173+ {
174+ "author" : " 龚自珍" ,
175+ "content" : " 浩荡离愁白日斜,吟鞭东指即天涯。落红不是无情物,化作春泥更护花。" ,
176+ "create_time" : 1548422493000 ,
177+ "dynasty" : " 清代" ,
178+ "id" : 3 ,
179+ "title" : " 己亥杂诗 · 其五"
180+ },
181+ {
182+ "author" : " 温庭筠" ,
183+ "content" : " 井底点灯深烛伊,共郎长行莫围棋。玲珑骰子安红豆,入骨相思知不知。" ,
184+ "create_time" : 1548422493000 ,
185+ "dynasty" : " 唐代" ,
186+ "id" : 4 ,
187+ "title" : " 杨柳枝"
188+ }
175189]
176190```
177191
178192### 按标题搜索诗词
193+
179194URL
180- > GET http://localhost:5000/plugin/poem/demo/search?q= <string >
195+
196+ > GET http://localhost:5000/plugin/poem/demo/search?q= <string >
181197
182198Response 200:
199+
183200``` json
184201[
185- {
186- "author" : " 龚自珍" ,
187- "content" : " 浩荡离愁白日斜,吟鞭东指即天涯。落红不是无情物,化作春泥更护花。" ,
188- "create_time" : 1548422493000 ,
189- "dynasty" : " 清代" ,
190- "id" : 3 ,
191- "title" : " 己亥杂诗 · 其五"
192- }
202+ {
203+ "author" : " 龚自珍" ,
204+ "content" : " 浩荡离愁白日斜,吟鞭东指即天涯。落红不是无情物,化作春泥更护花。" ,
205+ "create_time" : 1548422493000 ,
206+ "dynasty" : " 清代" ,
207+ "id" : 3 ,
208+ "title" : " 己亥杂诗 · 其五"
209+ }
193210]
194211```
0 commit comments