用一些时髦的超模装饰你的项目
fashionable的Python项目详细描述
时尚
用一些时尚的超级模特来装饰你的项目。
模型示例
fromtypingimportList,OptionalfromfashionableimportAttribute,ModelclassProject(Model):id=Attribute(str,limit=32)name=Attribute(str)organization=Attribute(Optional[str])domain=Attribute(Optional[str])links=Attribute(Optional[List[str]])project=Project(1,'Test')
sanic
fromtypingimportList,OptionalfromfashionableimportAttribute,SupermodelfromsanicimportSanicfromsanic.responseimportjson,HTTPResponseapp=Sanic()app.db=...classProject(Supermodel):_ttl=300id=Attribute(str,limit=32)name=Attribute(str)organization=Attribute(Optional[str])domain=Attribute(Optional[str])links=Attribute(Optional[List[str]])@staticmethodasyncdef_create(raw:dict):awaitapp.db.project_create(raw)@staticmethodasyncdef_get(id_:str)->Optional[dict]:returnawaitapp.db.project_get(id_)@staticmethodasyncdef_update(id_:str,raw:dict):awaitapp.db.project_update(id_,raw)@staticmethodasyncdef_delete(id_:str):awaitapp.db.project_delete(id_)@app.get('/project/<id_>')asyncdefproject_get(request,id_):project=awaitProject.get(id_)returnjson(dict(project))@app.post('/project')asyncdefproject_create(request):project=awaitProject.create(**request.json)returnjson(dict(project),status=201,headers={'Location':'/project/'+project.id},)@app.put('/project/<id_>')asyncdefproject_update(request,id_):project=awaitProject.get(id_,fresh=True)awaitproject.update(**request.json)returnjson(dict(project))@app.delete('/project/<id_>')asyncdefproject_delete(request,id_):project=awaitProject.get(id_,fresh=True)awaitproject.delete()returnHTTPResponse(status=204)if__name__=='__main__':app.run(host='0.0.0.0',port=8000)