项目结构

创建一个项目目录并进入:

$ mkdir flask-tutorial
$ cd flask-tutorial

然后按照 安装说明 来建立一个 Python 虚拟环境并安装 Flask。

从现在开始,这个教程会假定你一直在 flask-tutorial 目录下工作。每一个代码块顶部的文件名都相对于这个目录。


一个 Flask 应用可以简单到只有一个文件。

hello.py
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello, World!'

然而,当项目变大时,把所有代码都放到一个文件里不太现实。Python 项目使用 来组织代码,代码被分别存放到包内不同的模块中,这些模块可以在需要时被导入。这也是这个教程将要采用的方式。

项目目录将会包含:

  • flaskr/,一个包含你的应用代码和文件的 Python 包。

  • tests/,一个包含测试模块的目录。

  • venv/,一个 Python 虚拟环境文件夹,Flask 和其他依赖会被安装到这里。

  • 安装文件,用来告诉 Python 如何安装你的项目。

  • 版本控制工具的配置文件,比如 git。你应该养成为所有项目使用某类版本控制工具的习惯,不管项目大小。

  • 其他未来会添加的项目文件。

最后,你的项目结构将会类似这样:

/home/user/Projects/flask-tutorial
├── flaskr/
│   ├── __init__.py
│   ├── db.py
│   ├── schema.sql
│   ├── auth.py
│   ├── blog.py
│   ├── templates/
│   │   ├── base.html
│   │   ├── auth/
│   │   │   ├── login.html
│   │   │   └── register.html
│   │   └── blog/
│   │       ├── create.html
│   │       ├── index.html
│   │       └── update.html
│   └── static/
│       └── style.css
├── tests/
│   ├── conftest.py
│   ├── data.sql
│   ├── test_factory.py
│   ├── test_db.py
│   ├── test_auth.py
│   └── test_blog.py
├── venv/
├── setup.py
└── MANIFEST.in

如果你正在使用版本控制工具,在运行项目时生成的下列文件应该被忽略。也许还会有一些编辑器相关的其他文件。一般来说,应该忽略自动生成的文件。以 git 为例,这可以通过把文件路径规则写到 .gitignore 文件实现:

.gitignore
venv/

*.pyc
__pycache__/

instance/

.pytest_cache/
.coverage
htmlcov/

dist/
build/
*.egg-info/

继续阅读 应用设置