没有项目描述

restful_model的Python项目详细描述


traviscodecov

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": []}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
有没有一种方法可以将不同的java web应用程序组合到一个web应用程序(war)中而不相互影响?   java一次屏蔽两位   java如何在多个类上初始化元素?   java在后台服务中处理通知或使用GCM(或其他推送通知服务)   java从const方法调用JNI函数   javascript如何使用函数/方法返回?   Java优化:声明类变量与使用临时变量   java字符算术基数8 vs基数10   Java流收集要存储的对象列表   swing我正在用Java中的keyListener制作一个精灵移动器   在Gradle构建脚本中使用Scala(或java)方法   java Android Mediaplayer下一步按钮不起作用   Java Sound API在播放音频文件后将其锁定   java将变量从外部类传递到内部类的最佳方法   使用play framework的博客web应用程序出现java逻辑错误   java我们可以在Spring批处理中处理大型zip文件吗?   java如何检查JTable的选定行的特定列中的值是否已经在JList中?