环境安装
1.复习虚拟环境和pip的命令
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖包
pip freeze # 冻结当前环境的依赖包
2.创建虚拟环境
mkvirtualenv flask -p python3
注意需要联网
3.安装Flask
使用flask 1.0.2版本,注意需要联网
pip install flask
编写第一个Flask HelloWorld!
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
if __name__ == '__main__':
app.run()
启动可以手动也可以pycharm 手动运行
python helloworld.py
pycharm 运行
像正常运行普通python程序一样即可。
参数说明:
import_name
Flask程序所在的包(模块),传 __name__ 就可以
其可以决定 Flask 在访问静态文件时查找的路径
static_url_path
静态文件访问路径,可以不传,默认为:/ + static_folder
static_folder
静态文件存储的文件夹,可以不传,默认为 static
template_folder
模板文件存储的文件夹,可以不传,默认为 templates
默认参数情况下 app = Flask(name)
Flask配置信息读取写入分为三种方法:
作用
集中管理项目的所有配置信息
使用方式
Django将所有配置信息都放到了settings.py文件中,而Flask则不同。
Flask将配置信息保存到了app.config属性中,该属性可以按照字典类型进行操作。
读取
app.config.get(name)
app.config[name]
设置
主要使用以下三种方式:
从配置对象中加载
app.config.from_object(配置对象)
class DefaultConfig(object):
"""默认配置"""
SECRET_KEY = 'TPmi4aLWRbyVq8zu9v82dWYW1'
app = Flask(__name__)
app.config.from_object(DefaultConfig)
@app.route("/")
def index():
print(app.config['SECRET_KEY'])
return "hello world"
应用场景:
作为默认配置写在程序代码中
可以继承
class DevelopmentConfig(DefaultConfig):
DEBUG=True
从配置文件中加载
app.config.from_pyfile(配置文件)
新建一个配置文件setting.py
SECRET_KEY = 'TPmi4aLWRbyVq8zu9v82dWYW1'
在Flask程序文件中
app = Flask(__name__)
app.config.from_pyfile('setting.py')
@app.route("/")
def index():
print(app.config['SECRET_KEY'])
return "hello world"
应用场景:
在项目中使用固定的配置文件
从环境变量中加载
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。
通俗的理解,环境变量就是我们设置在操作系统中,由操作系统代为保存的变量值
在Linux系统中设置和读取环境变量的方式如下:
export 变量名=变量值 # 设置
echo $变量名 # 读取
例如
export ITCAST=python
echo $ITCAST
Flask使用环境变量加载配置的本质是通过环境变量值找到配置文件,再读取配置文件的信息,其使用方式为
app.config.from_envvar('环境变量名')
环境变量的值为配置文件的绝对路径
先在终端中执行如下命令
export PROJECT_SETTING='~/setting.py'
再运行如下代码
app = Flask(__name__)
app.config.from_envvar('PROJECT_SETTING', silent=True)
@app.route("/")
def index():
print(app.config['SECRET_KEY'])
return "hello world"
关于silent的说明:
表示系统环境变量中没有设置相应值时是否抛出异常
False 表示不安静的处理,没有值时报错通知,默认为False
True 表示安静的处理,即时没有值也让Flask正常的运行下去
4.开发服务器启动方式
在1.0版本之后,Flask调整了开发服务器的启动方式,由代码编写app.run()语句调整为命令flask run启动。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello World'
# 程序中不用再写app.run()
1 终端启动
$ export FLASK_APP=helloworld
$ flask run
* Running on http://127.0.0.1:5000/
说明
- 环境变量 FLASK_APP 指明flask的启动实例
- flask run -h 0.0.0.0 -p 8000 绑定地址 端口
- flask run --help获取帮助
- 生产模式与开发模式的控制
通过FLASK_ENV环境变量指明
- export FLASK_ENV=production 运行在生产模式,未指明则默认为此方式
- export FLASK_ENV=development运行在开发模式
拓展
$ export FLASK_APP=helloworld
$ python -m flask run
* Running on http://127.0.0.1:5000/
补充:
从配置对象中加载:
优点:可以继承,复用
缺点:敏感数据暴漏在在吗中
从配置文件中加载
优点=》独立的文件
缺点=》不能继承,文件路径不灵活
从环境变量读取
优点=》独立文件 保护敏感数据 文件路径不固定 灵活
缺点=》不方便 记得设置环境变量
新版Pycharm设置环境变量
|