介绍
Flask是一个使用Python编写的轻量级 Web 应用框架。其WSGI工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
之所以说Flask是微框架,因为它仅仅实现了Web应用的核心功能:Flask由两个主要依赖组成(提供路由、调试和Web服务器网关接口的Werkzeug和提供模板的Jinja2)。其他的一切(比如数据库集成,表单处理,文件上传,用户认证)都由第三方库来完成,如果插件满足不了你的需求,你也可以自行开发。
安装
pip install Flask
目录管理
官方文档推荐使用的目录结构:
/home/user/FlaskProject/
├── apps /蓝图
│ ├── __init__.py / 这里创建app对象函数,并注册蓝图
│ ├── user
│ │ ├── __init__.py
│ │ ├── model.py
│ │ ├── view.py
│ ├── article
│ ├── auth.py
│ ├── blog.py
├── templates/ 模板文件
│ ├── base.html
│ ├── auth/
│ │ ├── login.html
│ │ └── register.html
│ └── blog/
│ ├── create.html
│ ├── index.html
│ └── update.html
├── static/ 静态文件
│ └── style.css
├── setup.py
└── app.py //调用app创建函数,使用flask script 和 Migrate 管理app
├── tests/
│ ├── conftest.py
│ ├── data.sql
│ ├── test_factory.py
│ ├── test_db.py
│ ├── test_auth.py
│ └── test_blog.py
├── venv/
作为一个项目开发者,良好的项目目录结构管理习惯一定要有。
python推荐使用packages来组织管理大型项目,这里练习也一定要跟上规范。
- flaskr, a Python package containing your application code and files.
- tests/, a directory containing test modules.
- venv/, a Python virtual environment where Flask and other dependencies are installed.
- setup.py Installation files telling Python how to install your project.
- .gitignore Version control config, such as Git. You should make a habit of using some type of version control for all your projects, no matter the size.
.gitignore 一些不需要git版本管理的文件和目录
venv/
*.pyc
__pycache__/
instance/
.pytest_cache/
.coverage
htmlcov/
dist/
build/
*.egg-info/
Hello World
# hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/') # 路由
def sayhello():
return "Flask Here!"
if __name__ =='__main__':
app.run()
必须在项目中导入Flask模块。Flask类的一个对象是我们的WSGI应用程序。
Flask构造函数使用当前模块(name )的名称作为参数。
Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。
(base) root@3f4f62e00e25:/home/ay/Flask# /opt/conda/bin/python /home/ay/Flask/app/hello.py
* Serving Flask app "hello" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在最新的flask版本中建议使用如下启动方式
(base) ➜ FlaskE git:(master) ✗ export FLASK_APP=Hello.py
(base) ➜ FlaskE git:(master) ✗ flask run
调试器
报错信息显示到前端页面。
export FLASK_DEBUG=1