本章主要介绍了一些关于Flask开发的基本配置问题
使用pip、Pipflie和Virtualenv替换pip、virtualenv、requirements.txt。它让包安装、包依赖管理和虚拟环境管理更加方便,使用它可以实现高效的Python项目开发工作流。
安装
pip install pipenv
创建虚拟环境
进入项目的工作目录,使用如下命令,会生成一个python虚拟环境,虚拟环境名字是项目名+一串随机字符。
pipenv install
在项目工作目录下,使用如下命令激活环境
pipenv shell
# 使用如下两个命令可以退出环境
exit
deactivate
或者使用如下命令单次使用虚拟环境运行程序
pipenv run python temp.py
管理依赖
使用pipenv install在项目根目录下创建会生成Pipfile和Pipfile.lock,两个文件,前者记录依赖包,后者记录详细的依赖包列表情况
在新的环境下使用如下命令安装Pipfile文件中的包到新的虚拟环境中。
pipenv install
# 如果需要安装开发环境依赖包则需要如下命令,才会安装Pipfile中的dev-package部分
pipenv install --dev
想要安装包在虚拟环境中,最好使用pipenv install <包名>进行安装,会直接把包加到Pipfile中。
使用如下命令查看依赖包的依赖情况。
pipenv graph
对于简单程序而言,主模块一般命名为app.py
from flask import Flask
app = Flask(__name__)
在一个Web应用中,客户端和服务器上的Flask程序的交互可以简单概括为以下几步:
1、在浏览器中输入URL访问某个资源
2、Flask接收用户请求并分析URL
3、为URL找到处理函数
4、执行函数生成响应,返回浏览器
5、浏览器接收解析,展示页面
大部分都有Flask完成,使用app.route()装饰器,建立URL和函数之间建立关联。这个过程为 注册路由 ,这个函数成为 视图函数 。
在动态路由中设置默认值
@app.route("/greet", defaults={'name':'pro'})
@app.route("/greet/" )
def greet(name):
return "hello %s!
" % name
等价于
@app.route("/greet")
@app.route("/greet/" )
def greet(name='pro'):
return "hello %s!
" % name
从0.11开始,替代旧的app.run()的形式使用如下命令启动Flask
flask run
常用命令如下,默认生产环境,修改为开发环境后debug默认开启
export FLASK_APP=hello.py
export FLASK_ENV=development
flask run
# 或
flask run --host=127.0.0.1 --port=7000
自动寻找规则
修改环境变量,文件名为hello.py
# Linux或MacOS
export FLASK_APP=hello
# Windows
set FLASK_APP=hello
PyCharm进行运行配置修改,修改后点击右上角的图标进行运行和debug(不能右键debug),
Flask官网PyCharm配置
默认使用Werkzeug的内置stat重载器,缺点好点,准确性一般(确实一般反应迟钝),替换另一个用于文件变动的库Watchdog。
pipenv install watchdog --dev
–dev是开发时候的依赖,只有在开发室用到。在Pipfile文件中添加到dev-packages部分。
浏览器如果有缓存某些文件使用,忽略缓存重载页面
强制刷新网页:Ctrl/Shift + F5
配置文档地址:http://flask.pocoo.org/docs/latest/config
使用update修改单个、多个值:
app.config['TESTING'] = True
app.config.update(
TESTING=True,
SECRET_KEY=b'_5#y2L"F4Q8z\n\xec]/'
)
还可以把配置变量存储在单独的 Python 脚本、JSON 格式的文件或是 Python类中, config 对象提供了相应的方法来导人配置。
flask中的click:https://flask.palletsprojects.com/en/1.1.x/cli/#custom-commands
click官方文档: https://click.palletsprojects.com/