1.准备工作
1.1 建立虚拟环境
1.1.1 用pipenv建立
命令 | 说明 | 注意 |
---|
$ pip install pipenv | 从PyPI网站上安装pipenv | |
$ pipenv install | 建立虚拟环境 | 虚拟环境文件夹在路径C:/Users/[用户名]/.virtualenvs/目录下 |
$ pipenv shell | 激活(进入) 虚拟环境 | |
$ pip list | 查看当前环境安装包 | 在虚拟环境内外的环境包并不一致 |
$ pipenv graph | 查看当前环境安装包 | 此命令可在虚拟环境外执行 |
$ pipenv --venv | 可以查看当前虚拟环境文件路径 | |
- 建议先建好项目文件夹,再建立虚拟环境,再用Pycharm等IDE打开项目
- 每个虚拟环境都各自的python解释器(python.exe)
- pipenv install命令还会在目录中建立pipfile文件,用来记录虚拟环境依赖包
1.1.2 用virtualenv建立
命令 | 说明 | 注意 |
---|
$ pip install virtualenv | 从PyPI网站上安装virtualenv | |
$ virtualenv [文件名(环境名)] | 建立虚拟环境 | |
$ [环境名]\scripts\activate | 进入虚拟环境 | |
$ deactivate | 退出虚拟环境 | |
1.2 在pipfile换源
- 清华源:
https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里源:
https://mirrors.aliyun.com/pypi/simple
1.3 安装重载器
命令 | 说明 | 注意 |
---|
$ pipenv install watchdog --dev | 安装看门狗自动重载器 | –dev参数代表在开发环境下安装 |
1.4 安装flask
命令 | 说明 |
---|
$ pipenv install flask | 无论是否在虚拟环境,都会在虚拟环境下安装 |
2.编写简单程序
步骤 | 代码示例 |
---|
导入Flask类 | from flask import Flask |
示例化Flask类 | app = Flask(__name__) |
配置路由及视图函数 | @app.route('/')
def [函数名(默认端点名)]: return [响应视图] |
3.启动服务器
3.1 启动命令
命令 | 说明 | 注意 |
---|
$ flask run | 启动服务器 | 需在app.py文件或wsgi.py文件所在的目录下 |
- 程序需要为app.py或wsgi.py的文件名,如果需要其他文件名,则需要配置环境变量FLASK_APP
- flask run 命令会在程序文件找到FLASK类实例
- 运行 flask run 命令时,还可加一些参数,如:flask run --port = 8000,或 flask run --host = 0.0.0.0 来指定端口号和主机
- 以主机模式运行后,可以通过访问 [主机IP地址]:[端口号] 进行公网访问
3.2 管理环境变量
命令 | 说明 |
---|
$ pipenv install python-dotenv | 安装python-dotenv |
- 安装python-dotenv后,启动服务器时,程序回到.flaskenv文件和.env文件下加载环境变量
- 需要在app.py或wsgi.py文件目录下创建.flaskenv文件
- .flaskenv文件用来记录一些环境变量的值
环境变量 | 说明 |
---|
FLASK_APP | 记录除 app 和 wsgi 以外程序文件名 |
FLASK_ENV | 记录程序的运行环境,其值为 production 或 development |
FLASK_DEBUG | 其值为1或者0,为1时开启调试模式,不建议手动开启调试模式 |
FLASK_COMMAND_OPTION | 其中COMMAND和OPTION是一个泛指,如:FLASK_RUN_PORT |
4.一些基本操作与概念
4.1 自制Flask命令
步骤 | 代码 |
---|
导入click库 | import click |
定义命令 | @app.cli.command() ‘’’
可用flask --help命令打开此字符串 ‘’’
def [命令名]: [定义命令] |
4.2 项目配置
配置单个变量 | 配置多个变量 |
---|
app.config['变量名'] ='[变量值]' | app.config.update( [变量名]=[变量值], [变量名]=[变量值], [变量名]=[变量值], ... ) |
Configl类继承了字典类,可以像操作字典一样操作
---------------------------------------项目的配置还可以通过外部文件或者类进行访问------------------------------
从Python文件中读取 | 从配置类中读取 |
---|
app.config.from_pyfile('[文件路径]') | app.config.from_object('[配置类]') |
4.3 URL及端点
4.3.1 查看端点及对应视图
命令 | 说明 |
---|
$ flask routes | 此命令会显示URL对应的端点及视图 |
4.3.2 自定义端点
步骤 | 代码示例 |
---|
在配置路由及视图函数时,传入endpoint 参数 | @app.route('/',endpoint='自定义端点名')
def [函数名(默认端点名)]: return [响应视图] |
4.3.3 url_for()函数
示例代码 | 说明 |
---|
url_for('端点名') | 该函数会返回端点对应的URL |
url_for('端点名',_external=True) | 该函数会返回端点对应的完整的URL,公网使用的绝对URL |
url_for('static',filename='[文件路径]') | static端点默认的URL是static/<filename’s path>/,filename文件名位于static文件夹下的路径 |
5. Flask及依赖包资源链接
.