首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

Flask 只好放弃了, Django 拿起。。。其实我很喜欢 Flask。。。

  •  
  •   linlance · 87 天前 · 5800 次点击
    这是一个创建于 87 天前的主题,其中的信息可能已经有所发展或是发生改变。
    反反复复的用 Flask 做了几个小站,都是不用太复杂的类型,感觉很好用。
    但是遇到开发用户系统,需要有角色,权限问题的时候,Flask 太麻烦了,几个第三方库都不太好用。

    十六进制权限值 Flask 狗书 用十六进制来判断,放弃
    Flask-Security user 必须要有 email,active 字段,并且必须用 WTF
    Flask Principal flask_principal 的作者已经不更新了,上次提交代码是 2015 年。
    PyCasbin 国人 2019.1 开始

    目前就这四种第三方库,十六进制?有多少权限,就需要写多长的 16 位,然后还记得哪个位置是什么权限么?这种也太坑了,直接放弃。
    Flask-Security 必须要有 email,active,必须用 WTF,不太想用。
    Flask Pricipal,已经 4 年前了。
    PyCasbin,国人的刚开始几个月,用在项目上,实在是不放心。。。

    自己实现? RBAC 权限管理 基于角色的访问控制。
    感觉好复杂啊。。。。

    然后在咱们这里终于看到描述了,Flask 很优美,但是每个都得自己搭建,也太累了。。。
    我好不容易打通其他的,终于在这个用户角色权限上被拦了好几天。。。
    还是学习一下 Django 吧。。。基本上开箱即用。
    62 回复  |  直到 2019-07-30 01:22:37 +08:00
        1
    coolair   87 天前
    你应该来一个一劳永逸的解决办法,我就是自己写了套带 RBAC 的 Base 系统,公司所有的项目都基于它。后台界面靓丽,可定制程度高。
        2
    lihongjie0209   87 天前
    ```
    自己实现? RBAC 权限管理 基于角色的访问控制。
    感觉好复杂啊。。。

    ```

    啥????这个有什么困难的
        3
    gsj987   87 天前
    Django 我从 0.96 开始用,除了他的 mttv 范式现在有点不时髦,其他就没怎么烦恼过。flask 经常有这样那样的问题,主要是第三方的问题,但是也挺难受的。本来咱用 python 就是图方便,flask 适合将脚本输出服务,Django 适合快速搭建简单业务,但是项目一大型还是上工业级框架吧
        4
    lowman   87 天前
    python forever
        5
    linlance   87 天前
    @gsj987 工业级框架?
    我感觉 Django 貌似已经可以搭建比较大的应用了呀。
    不过我确实是觉得使用 python 就是图方便,Flask 需要自己弄来弄去,总会被各种小问题给折腾一整天,超级浪费时间。
        6
    linlance   87 天前
    @coolair 你这个确实一劳永逸,但是自己能力不够,对 RBAC 的理解还不太明白,没有办法写出来,不然 Flask 也可以使用了,大部分功能其实都实现了。但是对用户和权限,角色,以前都没考虑,都是 admin 一个账户解决。
    现在要考虑这部分内容了,觉得好麻烦,网上的教程也不是太清楚。。哎。
    我在考虑使用 DRF 框架来解决这些事,如上所说的,使用 python 是为了方便,快速搭建系统出来,不想在细节上费时间。
        7
    gesse   87 天前
    我一直觉得 flask 适合写 api
        8
    linlance   87 天前
    @lihongjie0209 初学者,觉得这个实在有点麻烦,起码建立 5 个表,还需要写模型吧?我都没想明白怎么实现这块。哎。。
        9
    gaigechunfeng   87 天前
    我知道一个开源项目 lin-cms,在 github 上,他有后台就是用 flask 的。
    权限管理做的也很齐全,算是一个比较好的脚手架吧。
        10
    aaronhua   87 天前
    对 flask 的确是很有好感,只是一些简单的接口用 flask。相对于 django 各有优势。看情况用吧
        11
    maigebaoer   87 天前 via Android
    试试 laravel?
        12
    wukongkong   87 天前 via iPhone
    2000 哥?
        13
    gsj987   87 天前
    @linlance 大型项目还是要用 java 或 c#,python 的框架 django 是最强了,但是一庞大起来,或者业务复杂起来,每一次重构都是痛苦。
        14
    nine   87 天前
    早用 Ruby on Rails 早超生,不然 3 年后回来发现还在纠结框架的事。
        15
    stamaimer   87 天前 via iPhone
    flask-security 可以自己改啊
        16
    linlance   87 天前
    @maigebaoer 最早放弃的东西,学习曲线太陡了。。。python 很容易出东西。

    @wukongkong 是我:)

    @gsj987 难道非得 java 么?我实在对 java 深恶痛绝,浏览器老得升级 java 插件,烦死。

    @nine ROR 一直没有入门,总觉得跟 Django 之类的 python 框架,完全不同。

    @stamaimer 自己改的难度有点大:(,弄了半天,业务逻辑都还没上呢,先被这些小坑给绊住了。
        17
    beimenjun   87 天前
    @linlance,你是之前 D 版的那位吗?
        18
    3789   87 天前 via Android
    @linlance 浏览器老得升级 java 插件是什么意思?
        19
    linlance   87 天前
    @beimenjun 是的,一直在 D 版:)每天刷~~都忘记 coding 了,哈哈。

    @3789 java 做的那些 B/S 产品,都有 java 虚拟机更新等等事情呀。经常有各种问题,在不同的电脑上。
        20
    CallMeReznov   87 天前
    本身就是小站点小页面用的,你要起大的肯定是更完备的酱狗啊
        21
    neoblackcap   87 天前
    @linlance 如果我没记错的话,16 进制权限值这个说法不是很对。根据经验来看,这个应该是 bitmap,应该转化为二进制来看,一个位代表一个权限。
    一般我们配权限的时候都是采取位操作的方法,比如 0x01 | 0x02 来实现两个权限的并集。权限应该是写成常量,用的时候用按位取或(bitwise or)
        22
    ryd994   87 天前 via Android   ♥ 1
    权限你难道手打吗?????
    你有没有考虑过 C 程序员是怎么活这么久的?
    enum permission {
    permission_a,
    permission_b,
    ...
    }
    #define PERMISSION_A_MASK = 1 << permission_a;
    #define PERMISSION_B_MASK = 1 << permission_b;

    if (Value & PERMISSION_A_MASK) ...

    Value |= PERMISSION_A_MASK;
    Value &= ~PERMISSION_B_MASK;
        23
    kqz901002   87 天前
    @linlance #16 如果是个人项目或者小项目无所谓语言,一般团队项目还是 Java 为主,人力是重要因素
        24
    fqxufo   87 天前
    追随 2kg
        25
    c0878   87 天前
    哟 2k 哥
        26
    ampedee   87 天前 via Android
    试试 flask-rbac
        27
    cnkiller   87 天前 via Android
    来自 d 版带着爱
        28
    caicaiwoshishui   87 天前 via Android
    @gsj987 工业级框架指的是?
        29
    catcalse   87 天前 via Android
    别放弃,我还在玩呢
        30
    nine   87 天前   ♥ 1
    @linlance 必然是完全不同的,除了 Rails 其他 web 框架都是在忙于配置,做些啰里啰嗦没用的事情,“看起来”很灵活,其实很狗屎。
        31
    swsh007   87 天前 via Android
    WordPress 好了
        32
    charlie21   87 天前
    @nine ror 框架 隐藏的细节有点儿多呀,用起来不踏实,就像对着一个黑盒 ( rails SDK ) 编程

    无数人写 PHP 都不爱用框架的
        33
    charlie21   87 天前
    就因为框架隐藏的细节太多了
        34
    niubee1   87 天前
    主要是楼主太弱鸡,遇到问题就想绕道,这样一直就会很弱, 没有别人的库连代码都不会写了
        35
    jakes   87 天前 via iPhone
    Java 做的 BS 和 Java 有什么关系? Java 虚拟机升级影响什么。。。?楼主完全没搞明白吧?
        36
    rogwan   87 天前 via Android
    @charlie21 flask 隐藏了很多细节,但是确实隐藏的很精妙,django 则更直观。
        37
    nine   87 天前
    @charlie21 looks like 吧?实际使用比任何其他框架令人踏实。
        38
    dudulangjiao   87 天前 via iPhone
    2000 哥。。。
        39
    arischow   87 天前 via iPhone
    来自地板带着爱?
        40
    linlance   87 天前
    哎,简直气死。。。Django2.2.3 对 mysql 又只支持 5.6 以上的,弄了半天,累死我鸟。。。
    一堆一堆的错误,bug,真难用。
    哎,为了用户角色权限的便利,我还没有放弃。。。
        41
    dcoder   87 天前
    @linlance
    Django 和 Rails 一般都推荐你用 PostgreSQL, 官配
    PostgreSQL 真心比 MySQL 强多了
        42
    laravel   87 天前
    @coolair 能问下你前端用的哪个框架吗?比如 layui、vue-element 等
    我好像有点儿处女座性格,代码写的不好我就想删了重写,UI 不好看我就不想用了。
        43
    coolair   86 天前
    @laravel 我自己实现了一个 theme 的功能,用了 adminlte、tabler、layui 三个,vue-element 还没弄,我对 vue 还不是很熟悉。
        44
    ecloud   86 天前
    我有一套现成的 rabc 基于 tornado,可以共享给你,不过我不太清楚 tornado 跟 flask 有多大差别
    其实说白了 rabc 就是那几个表和每个 action 的验权,表都弄出来了,验权就是体力活了
        45
    pzzrudlf   86 天前 via Android
    @ecloud 兄弟,可否分享?
        46
    sazima   86 天前
    还是代码里控制角色权限吗, 比使用三方库灵活. 我猜的
        47
    sazima   86 天前
    错字: 还是代码里控制角色权限吧, 比使用三方库灵活. 我猜的
        48
    firejoke   86 天前
    openstack  的权限管理组件 Keystone 就是用的 flask
        49
    charlie21   86 天前
    @nine
    老手感觉踏实 新手就感觉不踏实,这不是 API caller 的廉价经验什么的能踏平的 这是必须知道底层原理(当发现 rails 源码出错的时候能 debug 进去)能踏平的
        50
    imycc   86 天前
    初学的时候用的 Django,工作后用的 Flask。因为我们是一个开发团队多个系统都在用,很少用它的插件,大多数公用的库或者服务,自己开发自己维护,定制起来也比较方便。
    而个人开发者的话,这些都要自己做了,开发多个的话可以考虑抽出来做个通用的轮子?
        51
    ManjusakaL   86 天前 via Android
    Flask 最后也会写成 Django on Flask 的
        52
    charlie21   86 天前
    API caller 的经验对我来说没用,懂吗,设计 API 就是 软性药物 那就是贼船 。越高级的框架 整不明白就瞎 JB 用 刚用的时候很快乐 但最终都会影响到开发的流畅度
        53
    qile1   86 天前 via Android
    权限管理控制 5 张表太麻烦了,我是直接把每个 route 函数名存用户表的权限字段,验证的时候判断这个函数在不在权限字段,这样大到权限分组,或按角色,小到某个按钮的具体 post 或者 get、连数据库某个字段是否有权限修改都可以控制,就是现在还不知道使用蓝图后,如何把所有路由函数导出!都得手工加。
        54
    Raisu   86 天前 via Android
    狗书拿来垫桌脚吧,这本书都不知道为什么评分那么高
        55
    tairan2006   86 天前
    RBAC 不就是几张表么。。有啥难的
        56
    phithon   86 天前
    你以为 flask 很轻量写起来很快,其实写完一整个系统就会发现你用的第三方库一样不比 django 少,质量还参差不齐。。。
        57
    phithon   86 天前
    django 与 pg 更配,别折腾 mysql 了
        58
    ila   86 天前
    @niubee1
    没完整看 web 框架源码,不能自己实现 wsgi,对整个流程没有完全通彻。

    说的也是我
        59
    Gakho   86 天前
    其实手撸也没多难,最近刚给 aiohttp 撸了个自用...
        60
    niubee1   86 天前
    @ila 莫不是你不把 Linux 源码大全看完就在 linux 下没法写代码了? Windows 还没有源码的,你莫不是不能在 windows 下写代码?能不能在 web 框架基础上搞事情和看完源码有毛关系?
        61
    linlance   86 天前
    @ecloud 感谢。。tornado 又是新东西,哎,我想赶紧出成品。不然老在各种框架中跳来跳去。。

    @dcoder 万分感谢,一直都不知道 PQ 更合适,今天弄弄。。。
        62
    linlance   85 天前
    数据库换到 PostgreSQL 了,娘的,终于被 mysql 折磨的不行了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4364 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 53ms · UTC 02:05 · PVG 10:05 · LAX 19:05 · JFK 22:05
    ♥ Do have faith in what you're doing.