\subsection{约定项目结构}

Flask对于项目结构没有过多的硬性要求,甚至一个单独的文件也可以构成一个网站服务。但实际上对于项目结构还是约定了一个推荐设置。项目根目录中需要包含以下内容:

  • 应用包目录,包含网站应用全部代码和文件。
    • __init__.py,应用包初始化代码及核心启动文件。
    • templates/,模板文件目录。
    • static/,静态资源文件目录。
  • tests/,包含全部单元测试及其他测试代码。
  • venv/,虚拟环境目录。
  • setup.py,项目安装文件。
  • wsgi.py,WSGI服务启动文件,可选。
  • app.py,应用启动文件,可选。
  • uwsgi.ini,uWSGI配置文件,可选。
  • uwsgi.yml,uWSGI配置文件,可选。

其形成的目录结构示意如下:

  • project-root/
    • project-package/
      • init.py
      • db.py
      • routes.py
      • templates/
      • statics/
        • css/
        • js/
        • images/
    • tests/
    • venv/
    • .git/
    • setup.py
    • wsgi.py
    • uwsgi.ini
    • uwsgi.yml
    • .gitignore