Python版本:python3.8先来看一个最简单的例子:当我们获取到'/hello'时,返回successapp.pyfromflaskimportFlaskapp=Flask(__name__)fromflask_restfulimportApi,ResourceclassHelloWorld(Resource):defget(self):return'success'api.add_resource(HelloWorld,'/hello')if__name__=='__main__':app.run(port=3000)接下来是升级版,我们尝试改成发布请求,并接收参数“用户”,并进行简单的表单验证fromflaskimportFlaskapp=Flask(__name__)fromflask_restfulimportApi,Resource,reqparseclassHelloWorld(Resource):defpost(self):parser=reqparse.RequestParser()parser.add_argument('user',type=str,help="参数无效")args=parser.parse_args()print(args)return'success'api.add_resource(HelloWorld,'/hello')if__name__=='__main__':app.run(port=3000)接下来是如何规范接口的返回数据:我们定义一个GetDatas类,通过访问'/getDatas'fr获取数据omflaskimportFlaskapp=Flask(__name__)来自flask_restfulimportApi,Resource,reqparse,fields,marshal_withclassGetDatas(Resource):resource_fidlds={'title':fields.String,'content':fields.String}@marshal_with(resource_fidlds)defget(self):return{'title':'我是标题','content':'我是内容'}api.add_resource(GetDatas,'/getDatas')if__name__=='__main__':app.run(port=3000)看到上面的代码发呆,这里是数据库查询返回数据的例子假设我们有一个数据模型如下:这是一篇文章的数据模型,简单定义了几个必填字段#ArticletableclassArtcle(db.Model):__tablename__='artcle'id=db.Column(db.Integer,primary_key=True)title=db.Column(db.String(60))content=db.Column(db.Text)author=db.Column(db.String(10))create_time=db.Column(db.DateTime)Next,我们模拟查询数据库返回jsonfromflaskimportFlaskapp=Flask(__name__)fromflask_restfulimportApi,Resource,reqparse,fields,marshal_withclassGetDatas(Resource):resource_fidlds={'title':fields.String,'content':fields.String}@marshal_with(resource_fidlds)defget(self):result=Artcle.query.all()返回resultapi.add_resource(GetDatas,'/getDatas')if__name__=='__main__':app.run(port=3000)这时候我们访问'/getDatas',返回的是{'title':'xxx','content':'xxx'},有经验的同学可能会发现这次返回一个数据转换json的过程并不是一个完整的demo,所以不能直接复制粘贴+运行。不懂的可以先看基础知识。
