项目布局

创建并进入项目文件夹:

1. $ mkdir flask-tutorial
2. $ cd flask-tutorial

接下来按照 安装简介 设置一个 Python 虚拟环境,然后 为项目安装 Flask 。

本教程假定项目文件夹名称为 flask-tutorial ,本教程中代码块的顶端的文件 名是基于该文件夹的相对名称。


一个最简单的 Flask 应用可以是单个文件。

hello.py

1. from flask import Flask

3. app = Flask(__name__)

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

然而,当项目越来越大的时候,把所有代码放在单个文件中就有点不堪重负了。 Python 项目使用 包 来管理代码,把代码分为不同的模块,然后在需要的地方导入 模块。本教程也会按这一方式管理代码。

教程项目包含如下内容:

  • flaskr/ ,一个包含应用代码和文件的 Python 包。
  • tests/ ,一个包含测试模块的文件夹。
  • venv/ ,一个 Python 虚拟环境,用于安装 Flask 和其他依赖的包。
  • 告诉 Python 如何安装项目的安装文件。
  • 版本控制配置,如 git 。不管项目大小,应当养成使用版本控制的习惯。
  • 项目需要的其他文件。

最后,项目布局如下:

1. /home/user/Projects/flask-tutorial
2. ├── flaskr/
3. │   ├── __init__.py
4. │   ├── db.py
5. │   ├── schema.sql
6. │   ├── auth.py
7. │   ├── blog.py
8. │   ├── templates/
9. │   │   ├── base.html
10. │   │   ├── auth/
11. │   │   │   ├── login.html
12. │   │   │   └── register.html
13. │   │   └── blog/
14. │   │       ├── create.html
15. │   │       ├── index.html
16. │   │       └── update.html
17. │   └── static/
18. │       └── style.css
19. ├── tests/
20. │   ├── conftest.py
21. │   ├── data.sql
22. │   ├── test_factory.py
23. │   ├── test_db.py
24. │   ├── test_auth.py
25. │   └── test_blog.py
26. ├── venv/
27. ├── setup.py
28. └── MANIFEST.in

如果使用了版本控制,那么应当忽略运行项目时产生的临时文件以及编辑代码时编辑 器产生的临时文件。忽略文件的基本原则是:不是你自己写的文件就可以忽略。举例 来说,假设使用 git 来进行版本控制,那么使用 .gitignore 来设置应当忽略 的文件, .gitignore 文件应当与下面类似:

.gitignore

1. venv/

3. *.pyc
4. __pycache__/

6. instance/

8. .pytest_cache/
9. .coverage
10. htmlcov/

12. dist/
13. build/
14. *.egg-info/

下面请阅读 应用设置 。