1.安装pipenv
pip install pipenv
2.新建项目文件,并切换到该文件目录下
mkdir myFlask(项目目录名称)
cd myFlask
3.为当前项目创建虚拟环境
pipenv install
生成d的文件Pipfile和Pipfile.lock为pipenv包的配置文件,可代替原来的 requirement.txt。项目提交时,可将Pipfile 文件和Pipfile.lock文件一并提交,待其他开发克隆下载,根据此Pipfile 运行命令pipenv install --dev生成自己的虚拟环境。
同时还可以:
(1)像virtualenv一样用命令生成requirements 文件
pipenv lock -r --dev > requirements.txt
(2)通过requirements.txt安装包
pipenv install -r requirements.txt
4.激活虚拟环境
pipenv shell
5.推出虚拟环境
exit
5.1.删除虚拟环境
pipenv --rm
其他pipenv命令可以在终端通过pipenv --help查询获得
6.安装flask(在虚拟环境下安装)
pipenv install flask
7.升级flask的最新版本(可选)
pipenv update falsk
8.使用IDE打开项目目录
选择pycharm,pycharm的下载安装见:https://www.runoob.com/w3cnote/pycharm-windows-install.html
9.编写flask helloworld代码(目的测试)
新建app.py文件
10.命令行执行flask 主程序文件
因为py文件可能引用第三方库,开发环境又是隔离的,造成本机全局不一定存在项目中安装的第三方库,执行文件报错。
非虚拟环境执行虚拟环境的wsgi.py文件:pipenv run python wsgi.py
虚拟环境执行项目wsgi.py文件:flask run (启动问题:添加环境变量以后引发)--》将管理环境变量的文件.flaskenv设置为文本文档引发flask run执行错误
flask --help 查看flask帮助
11.pycharm设置解释执行器和下载第三方库
file-->settings-->project:项目名称-->project interpreter(项目解释执行器)
点击 + 可进行下载安装第三方库(搜索包名,install package),
manage repositories,更改下载源
12.flask的URL和端点
flask中只需为函数附加@app.route()装饰器,并传入URL规则作为参数,就可实现URL和函数建立关联。
@app.route('/
url_for() 解决当路由中url规则改变时,总能正确返回URL。url_for()函数的第一个参数为端点值,端点的默认值是视图函数的名称;第二个参数为传入的参数。url_for('index', name='Jack')
13.通过python-dotenv管理环境变量
首先在项目的根目录创建:.flaskenv 和 .env
windows环境,在项目根目录下,cmd,输入:type nul>.flaskenv 创建,pycharm创建类型:文本文件(不行)
设置使用sublime终端命令打开文件:
安装python-dotenv, 命令:pipenv install python-dotenv
在.flaskenv中编写:FLASK_APP=app FLASK_ENV=development
14.更多启动选项
flask run --host=0.0.0.0
flask run --port=8000
15.安装watchdog检测文件变动(后端改动自动刷新)
pipenv install watchdog --dev
前端的css和js的浏览器缓存需要执行硬重载:Ctrl + F5 或 Shift + F5
16.flask扩展(python库,为flask提供更多扩展功能,缺点:存在兼容和质量问题)
大部分扩展类的初始化过程:实例化该类,传入创建的程序实例app作为参数
17.项目配置
(1)app.config['DEBUG'] = True
(2)app.config.update(debug=True, SECRET_KEY='hello flask')
(3)将配置变量存储到单独的python脚本、JSON文件或python类中,通过config对象导入(推荐使用)
18.Flask项目的目录结构
learntools/
- templates/ndex.html
- static/
- css/bootstrap.css
- js/jquery.js, popper.js, bootstrap.js
- font/
- img/
- app.py