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
mrchi
V2EX  ›  Python

大家在实际 Flask 项目中 是怎样组织目录结构的?

  •  
  •   mrchi ·
    mrchi · 2018-07-02 11:53:01 +08:00 · 13427 次点击
    这是一个创建于 2331 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT,我学习过图灵的动物书《 Flask Web 开发》和董伟明大大的《 Flask Web 开发实战》,两本书在目录结构上的组织不一样。想问问大家在实际的项目中,是使用的哪种?或者有更好的结构,也可以分享一下。先行谢过!
    第 1 条附言  ·  2018-07-06 19:28:46 +08:00
    感谢大家的回答,大概看了大家给的所有链接,总结如下:

    1. (个人比较认同)不在__init__.py (定义 create_app 函数的文件)中创建 Flask 扩展的实例;
    2. 结构大概分两种,大部分在用的是“按照 app (或者说按照蓝本)组织目录”的形式,另一种是“按照功能组织目录”,也就是模版、模型、路由等放在不同的目录里。

    具体可以看看 1# 发的文章,写得很好。另外文章里提到原作者在 Flask 的项目里发了一个 issue,里面的讨论也很有意思。

    Good Luck, Everyone!
    第 2 条附言  ·  2019-04-25 10:24:21 +08:00
    看到有人收藏,贴一下当时写的总结

    https://mrchi.cc/p/a9cbb652d06fcbd8932ccb3e553d72af/
    12 条回复    2018-07-06 19:23:30 +08:00
    frostming
        1
    frostming  
       2018-07-02 12:52:50 +08:00
    https://lepture.com/en/2018/structure-of-a-flask-project

    作者 lepture, pallets 小组成员,flask 系列核心开发者
    mrchi
        2
    mrchi  
    OP
       2018-07-02 15:05:25 +08:00
    @frostming 谢谢,我看一下
    cszhiyue
        3
    cszhiyue  
       2018-07-02 17:17:36 +08:00
    fushall
        4
    fushall  
       2018-07-02 21:38:13 +08:00
    flask 其实很灵活,怎样都行,怎么舒服怎么来,比如我是这样定义结构的
    https://github.com/fushall/myblog
    linnn2
        5
    linnn2  
       2018-07-03 08:53:59 +08:00
    其实可以参考 Django
    iango
        6
    iango  
       2018-07-03 21:04:15 +08:00
    基于 Cookiecutter 构建 Flask 工程模板,快速生成 Flask 大型项目代码骨架。
    https://github.com/sloria/cookiecutter-flask
    A flask template with Bootstrap 3, asset bundling+minification with webpack, starter templates, and registration/authentication. For use with cookiecutter.
    Ge4Los
        7
    Ge4Los  
       2018-07-05 00:30:56 +08:00
    参考几个 cookiecutter-flask 的工程调整了一下目录结构。
    加上额外的第三库支持。
    当然只针对面向 api 的 web 服务。
    mrchi
        8
    mrchi  
    OP
       2018-07-06 19:18:46 +08:00
    @frostming 谢谢分享,比较赞同不在__init__.py 中实例化 SQLAlchemy 的方式。
    mrchi
        9
    mrchi  
    OP
       2018-07-06 19:20:37 +08:00
    @cszhiyue 谢谢分享,不过这个没有讲在使用工厂函数和蓝本情况下的组织结构
    mrchi
        10
    mrchi  
    OP
       2018-07-06 19:21:03 +08:00   ❤️ 1
    @fushall 表示对你的自动分析文章内容打标签的东东很感兴趣。
    mrchi
        11
    mrchi  
    OP
       2018-07-06 19:21:54 +08:00
    @linnn2 没有用过 Django 框架,不过根据 1#发的链接里,Django 应该也是按照蓝本组织目录结构的。
    mrchi
        12
    mrchi  
    OP
       2018-07-06 19:23:30 +08:00
    @iango
    @Ge4Los

    cookiecutter 确实不错,基本上一个应用该有的样子都有了。可以考虑看看 1# 链接中不在__init__.py 对 Flask 扩展实例化的方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 06:34 · PVG 14:34 · LAX 22:34 · JFK 01:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.