没有项目描述

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我的int值在SharedReferences中不被记住   java如何编辑Spring可分页对象?   java如何在gradle中单独调用任务   jvm以编程方式设置最大java堆大小   java如果满足多个条件,如何使用If语句计算数字?   如何在java中从json文件中获取特定值   如何在Sphinx4中为Java语音识别添加自定义语法?   java int[]copy=data;//当数据是数组时会发生什么?   java豪猪管理器。停下来。destroy()不起作用   安卓在API级别28中找不到画布变量   基于SOLID的java冗余   用于talend作业的java Liferay和portlet   从java到安卓的视频流   java获取在控件的类定义中添加自定义控件的场景大小   awt Java IndexOutOfBoundsException   java如何使用Spring JmsTemplate更改MQ头   java遍历数组并打印每个对象   java Google Map api v2标记在我旋转手机和地图“刷新”之前不会移动