这篇文章,是我的自言自语
A: 当客户端与服务器端分离时, 需要通过API传递资源
A: 即数据库中的数据
A: 使用json的方式表示, 以键值的方式表示一个资源, 每一个键代表资源的一个属性; 使用数组(列表)表示资源的集合, 例如
[
{
\'id\': 1,
\'username\': \'neo1218\'
},
{
\'id\': 2,
\'username\': \'zxc0328\'
}
]
A: 涉及HTTP方法映射: 如下表
GET ------> 获取(集合,特定资源)
POST -----> 创建(特定资源)
PUT ------> 更新(特定资源)
DELETE ---> 删除(特定资源)
A:
flask需要把数据库资源通过json的形式提供出去, 所以需要在数据库Model中定义to_json方法
, 以
json的形式表示数据库数据, 以User类为例
class User(db.Model):
......
def to_json(self):
json_user = {
\'id\': self.id,
\'username\': self.username
}
return json_user
......
flask需要接受客户端发送的json数据从而用于创建资源,
所以需要在数据库Model中定义from_json方法
class User(db.Model):
......
@staticmethod
def from_json(json_data):
user = User(
username = json_data.get(\'username\'),
password = json_data.get(\'password\')
)
return user
......
并在API代码中搭配[request.get_json()
]()使用
/api/users.py
from flask import request
@api.route(\'/users/\', methods=[\'POST\'])
def create_user():
user = User.from_json(request.get_json())
db.session.add(user)
db.session.commit()
还是以用户资源为例:
@api.route(\'/users/\', methods=[\'GET\'])
def get_users():
\"\"\"获取用户资源集合\"\"\"
pass
@api.route(\'/users//\', methods=[\'GET\'])
def get_id_users(id):
\"\"\"获取特定id用户资源\"\"\"
pass
@api.route(\'/users/\', methods=[\'GET\', \'POST\'])
def create_user():
\"\"\"创建用户资源\"\"\"
pass
@api.route(\'/users//\', methods=[\'GET\', \'PUT\'])
def update_id_user(id):
\"\"\"更新特定id用户资源\"\"\"
pass
@api.route(\'/users//\', methods=[\'GET\', \'DELETE\'])
def delete_id_user(id):
\"\"\"删除特定id用户\"\"\"
pass
A: 你这不是废话吗….