轮子 - 更快速的构建生产环境下的 Flask Web 应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
MonkLuf

轮子 - 更快速的构建生产环境下的 Flask Web 应用

  •  
  •   MonkLuf
    monklof Apr 27, 2016 5831 views
    This topic created in 3654 days ago, the information mentioned may be changed or developed.

    项目地址: https://github.com/monklof/flaskproject-in-production

    简要介绍一下,有兴趣的同学可以点进去看看:

    这是一个较小的 Flask Demo ,集成了一些在基于 Flask 开发部署 Web 应用时非常有用的功能,基于它,你可以快速开始写一个 Flask 应用并应用到生产环境下。

    Flask 本身是一个轻量级的 Web 框架,提供了 Web 请求处理的基本框架,能帮助开发者解决许多在 HTTP 请求处理层面上的许多问题。但在实际的工程中,我们往往需要做更多的工作来使得基于 Flask 的应用能够应用到生产环境下。譬如:

    • 用户认证: 有些资源 /页面访问时需要进行认证,而这个过程其实是比较通用的,能否把这个功能集成好呢?
    • 程序配置管理: 线下开发和线上部署时程序往往要使用不同的配置(比如常见的情况就是线下开发需要指向线下数据库,而线上需要指向线上数据库),能否提供一种通用的配置方式呢?使得程序可以方便的进行配置切换?
    • 生产环境下的部署: Flask 自带的调试 server 是单线程的,一个请求阻塞后之后的请求都会被卡住,在生产环境下肯定不能使用这个 server 。通常我们会选择使用[Gunicorn][gunicorn]这样的服务器来作为生产环境下的并发方案,这个功能也可以集成起来。
    • 日志文件管理: 在生产环境下,往往要记录程序的访问日志、出错日志、应用日志以方便进行问题定位。而 Flask 是没有提供这样的机制的,往往还需要开发者再去开发这样的功能。

    我相信这些功能,是一个健康成熟的线上生产应用的通用需求。 FIP 将这些功能集成起来,以方便开发者开发时,不再需要再关注这些通用性的问题,而将关注点切换至更高层次上解决问题,提高开发效率。

    5 replies    2016-04-29 10:32:36 +08:00
    lostab
        1
    lostab  
       Apr 28, 2016 via Android
    呵呵,相同的想法,只不过我沉浸在 django 里面。最近也在尝试看 flask 跟 nodejs
    strwei
        2
    strwei  
       Apr 28, 2016
    没啥创新,还是点了 start ,关注一下
    MonkLuf
        3
    MonkLuf  
    OP
       Apr 2, 2016
    @strwei 集成嘛...开心有用就好...
    junnplus
        4
    junnplus  
       Apr 28, 2016
    尴尬癌犯了,没有 pep8
    MonkLuf
        5
    MonkLuf  
    OP
       Apr 29, 2016
    @junnplus 嗯,这个可以加
    About     Help     Advertise     Blog     API     FAQ     Solana     2680 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 103ms UTC 13:00 PVG 21:00 LAX 06:00 JFK 09:00
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86