Flask主要有两个依赖 是WSGI(Web Server GateWay InterFace, Web服务器的工具集--Werkzeug, 和Jinja2模板引擎)
1.1 搭建开发环境
1.1.1 Pipenv工作流
$ pip --version
$ pip install <包名称>
# 安装pipenv
$ pip install pipenv
在linux或macOS系统中使用sudo以全局安装
$ sudo pip install pipenv
创建虚拟环境
到项目目录的跟目录下执行以下代码
pipenv install
使用pipenv shell 显示的激活虚拟环境
Flask依赖包
Jinja2(模板渲染引擎), MarkupSafe(html转义工具), Werkzeug(WSGI工具集), click(命令行工具), itsdangerous(提供各种加密签名功能)
Hello, Flask!
from flask import Flask
#创建程序实例
app = Flask(__name__)
#注册路由
@app.route("/")
def index():#定义视图函数
return "
Hello Falsk
""为视图绑定多个URL
@app.route("/h1")
@app.route("/hello")
def say_hello():
return "
Hello Falsk
""动态URL
@app.route("/greet/
def great(name):
return "
Hello, %s
" % name启动开发服务器
flask run
# 默认启动主程模块名为app.py
# 旧的启动开发服务器的方式是使用app.run()方法 目前已不推荐使用(deprecated)
set FLASK_APP=hello # 更改启动模块为hello
管理环境变量
pipenv install python-dotenv
在项目根目录下分别创建.env 和 .flask两个文件 .env存储含敏感信息的环境变量
环境变量使用键值对的形式定义 每行一个 以#开头的为注释
FOO="BAR"
FLASK_APP=hello
# 开启支持开发的特性
FLASK_ENV=development
更多的启动选项
flask run --host==0.0.0.0
flask run --port=8000
重载器
pip install watchdog
Flask 拓展
from flask import Flask
from flask_sqlalchemy import SQLalchemy
app = Flask(__name__)
db = SQLalchemy(app) # 拓展
1.6项目配置
app.config["ADMIN_NAME"] = "Artio"
app.config.update(TESTING=True,SECRET_KEY="your secretkey"
读取项目配置
value = app.config["ADMIN_NAME"]
1.7 URL与端点
@app.route("/")
def index():
return "Hello, Flask"
默认路由的端点即为视图函数的名称, 调用url_for("index") 即可获取对应的URL, 即”/"
显示的定义端点
@app.route("/", endpoint="index")
def index123():
return "Hello, Flask"
对于含有动态URL的端点 我们需要在url_for函数里传入相应的参数 即可获取对应的URL
@app.route("/hello/
def greet(name):
return "Hello, %s" % name
这时使用url_for("greet", name="Artio") 得到的URL为”/hello/Artio“
1.8 Flask命令
import click
from flask import Flask
app = Flask(__name__)
@app.cli.common()
def hello():
click.echo("Hello, Humna!")
# 在这里我们定义了一个hello的命令
$ flask hell0
>>Hello, Human
1.9 模板与静态文件
默认的我们将模板放在templates目录下 静态文件(css, js)等文件放在static目录下
文件树如下
hello/
- templates/
-static/
-app.py
1.10 Flask与MVC架构
M Model
V Views
C Controller