介绍
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/.coveragehtmlcov/dist/build/*.egg-info/
Hello World
# hello.pyfrom flask import Flaskapp = 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: productionWARNING: 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
