V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wjx0912
V2EX  ›  Python

求推荐一个 Python restful 框架

  •  
  •   wjx0912 · 2022-04-27 21:40:29 +08:00 · 4048 次点击
    这是一个创建于 934 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.因为有接近 10 个不同的 python 算法模块,希望使用 flask ,封装成 restful 接口给其它人使用

    2.希望可以提供这样的编程方式

    当用户发了一个 post 请求,比如 https://xxx.com/xxxCreate 后,从 cookie 得到 token (已经有了主系统,登录什么的已经做好了,这个是 token 是用户登录成功后的凭证), 根据 token 从数据库查询当前用户的权限列表: ["module1:func1:create", "module1:func1:delete"]

    (1) 这个 id 查到的权限列表里面有 "module1:func1:create",就放行,执行 myCreate(myobj) (2) 这个 id 查到的权限列表里面没有 "module1:func1:create",直接返回:{"result": "err", "reason": "need permission"}

    有木有简单的解决方案,两三个库组合也行,不要太重的,python 只写过不到 100 行规模的程序,万分感谢

    14 条回复    2022-05-05 08:54:36 +08:00
    fff333
        1
    fff333  
       2022-04-27 23:21:22 +08:00 via Android
    drf
    lidage
        2
    lidage  
       2022-04-28 01:01:00 +08:00 via iPhone
    fastapi
    cz5424
        3
    cz5424  
       2022-04-28 01:07:23 +08:00
    fastapi 和 flask 都可以,权限要自己实现,drf 很重,但是后期加 restful 接口很快
    windvans
        4
    windvans  
       2022-04-28 08:54:30 +08:00
    这就是 flask 的代码吧
    wjx0912
        5
    wjx0912  
    OP
       2022-04-28 09:44:09 +08:00
    @cz5424
    谢谢
    第一次知道 fastapi ,看了下介绍好像是个异步框架。直觉 hold 不住,资料也没有 flask 多,先暂定 flask 吧

    权限要自己实现--->对的,flask rest 的例子很简单。现在的问题就是权限想做的更方便一点(权限服务有个 java 后端已经做好了),能够和业务解耦

    看到 Blueprint 有个 before_app_request 的装饰器,在这里面验证权限可以吗:
    ![]( https://user-images.githubusercontent.com/5556482/165659396-2fec00de-7654-4b49-b5ee-7b471de2b1c9.png)

    基础有点差,还请不吝指导~~~
    cz5424
        6
    cz5424  
       2022-04-28 09:48:30 +08:00
    @wjx0912 你不是定义了装饰器吗,在装饰器实现就可以了
    wjx0912
        7
    wjx0912  
    OP
       2022-04-28 09:49:32 +08:00
    @cz5424 我先按这个思路做一下,谢啦
    wjx0912
        8
    wjx0912  
    OP
       2022-04-28 09:50:05 +08:00
    Baloneo
        9
    Baloneo  
       2022-04-29 11:28:07 +08:00
    frostming
        10
    frostming  
       2022-05-01 22:56:58 +08:00
    lolizeppelin
        11
    lolizeppelin  
       2022-05-02 18:57:19 +08:00
    WebOb+Paste+PasteDeploy+pecan


    手动狗头 23333
    lolizeppelin
        12
    lolizeppelin  
       2022-05-02 19:01:44 +08:00
    你这需求...其实用 openresty 做最好
    nginx 里用 lua 解析 token 后 proxy pass 就是

    写法还能改的话参考 oslo_policy 怎么做的
    wjx0912
        13
    wjx0912  
    OP
       2022-05-05 08:54:01 +08:00
    @Baloneo @frostming @lolizeppelin
    谢谢。代码已经撸完了。用的 flask+装饰器
    wjx0912
        14
    wjx0912  
    OP
       2022-05-05 08:54:36 +08:00
    @lolizeppelin
    openresty 不错的思路,以后要是重构的话估计考虑它,谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.