没有项目描述
restful_model的Python项目详细描述
restful_模型是一个自动生成reatful api的sqlalchemy
示例
sanic
app.py
importsqlalchemyassafromsanicimportSanicfromsanic.constantsimportHTTP_METHODSfromrestful_modelimportDataBasefromrestful_model.extend.sanicimportApiViewmetadata=sa.MetaData()User=sa.Table('user',metadata,sa.Column('id',sa.Integer,autoincrement=True,primary_key=True,nullable=False,),sa.Column('account',sa.String(16),nullable=False,),sqlite_autoincrement=True,)classUserView(ApiView):__model__=Userapp=Sanic(__name__)db=DataBase("sqlite:///db.db")app.db=db@app.listener('before_server_start')asyncdefsetup_db(app,loop):ifapp.db.loopisNone:app.db.loop=loopapp.db.engine=awaitapp.db.create_engine(echo=True)ifnotawaitapp.db.exists_table(User.name):awaitapp.db.create_table(User)userView=UserView.as_view(app.db)app.add_route(userView,"/user",HTTP_METHODS)app.add_route(userView,"/user/<id:int>",HTTP_METHODS)if__name__=="__main__":app.run(host="0.0.0.0",port=8000)
卷曲试验
$ # create $ curl -X POST http://127.0.0.1:8000/user \ -H 'content-type: application/json'\ -d '{ "account": "test1" }' > {"status": 201, "message": "Insert ok!", "meta": {"count":1}} $ # select $ curl -X GET http://127.0.0.1:8000/user > {"status": 200, "message": "Query ok!", "data": [{"id": 1, "account": "test1"}]} $ # update $ curl -X PUT http://127.0.0.1:8000/user \ -H 'content-type: application/json'\ -d '{"where": {"id": 1}, "values": {"account": "test2"}}' > {"status": 201, "message": "Update ok!", "meta":{"count": 1}} $ curl -X GET http://127.0.0.1:8000/user > {"status": 200, "message": "Query ok!", "data": [{"id": 1,"account": "test2"}]} $ # delete $ curl -X DELETE http://127.0.0.1:8000/user \ -H 'content-type: application/json'\ -d '{"id": 1}' > {"status": 200, "message": "Delete ok!", "meta": {"count":1}} $ curl -X GET http://127.0.0.1:8000/user > {"status": 200, "message": "Query ok!", "data": []}