一、介绍
Flask的核心在于werkzeug(路由模块),Jinja2模板引擎
类比Django:路由、模板、orm
Flask要完成功能,依赖于丰富的插件
补充:Django与flask区别
flask:
django:
二、环境搭建
virtualenvwrapper来创建、管理我们的虚拟环境
实际开发中,每一个项目都有对应的虚拟环境
补充:
为什么要安装虚拟环境?
虚拟环境可以让系统Python环境保持纯洁,干净,避免包的混乱和版本的冲突。专为不同的项目搭建不同的环境,为每个项目使用虚拟环境可以保证项目只访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建虚拟环境的源。
1、安装虚拟环境:pip install virtualenvwrapper-win
2、配置虚拟环境主目录:
在Windows上环境变量中添加环境变量WORKON_HOME
配置上目录在D盘
3、虚拟环境操作
创建虚拟环境 mkvirtualenv 虚拟环境名
查看所有虚拟环境 workon
切换进入虚拟环境 workon 虚拟环境名
查看命令是否在虚拟环境中,要看命令行的前缀是否有括号()
离开虚拟环境 deactive
4、安装flask
pip install flask==1.0.2
5、pip高级使用
导出环境中所有的包
pip freeze > C:\Users\zf\Desktop\requirements.txt
在环境中批量安装包
pip install -r requirements.txt
三、项目配置
在app.py中添加配置信息并打印
from flask import Flask
app = Flask(__name__)
# 配置信息
print(app.config)
app.config['room'] = "105"
app.config["MYSQL_HOST"] = "127.0.0.1"
# 获取配置信息
print(app.config['room'])
print(app.config["MYSQL_HOST"])
@app.route('/')
def hello_world():
return 'ET小仙女!'
if __name__ == '__main__':
app.run(host="127.0.0.1",debug=True,port=8888)
右键run运行后可得到以下结果:
我们把配置信息 写入到一个类中,然后 去加载
配置类是:
配置类 我们写入到 settings模块 (settings.py)
# 定义一个配置类
class Config:
ROOM = "105"
MYSQL_HOST = "127.0.0.1"
返回到app.py中,修改
from flask import Flask
from settings import Config
app = Flask(__name__)
app.config.from_object(Config)
# 配置信息
print(app.config)
# app.config['room'] = "105"
# app.config["MYSQL_HOST"] = "127.0.0.1"
# 获取配置信息
# print(app.config['room'])
# print(app.config["MYSQL_HOST"])
print(app.config.get("ROOM"))
print(app.config.get("MYSQL_HOST"))
@app.route('/')
def hello_world():
return 'ET小仙女!'
if __name__ == '__main__':
app.run(host="127.0.0.1",debug=True,port=8888)
运行结果为:
我们直接把配置信息 写入到文件中,然后去加载
同理我们在settings中直接写入:
# 定义一个配置类
# 属性 必须是 全大写
ROOM = "3308"
MYSQL_HOST = "192.168.0.54"
我们在pycharm中定义一个环境变量,这个环境变量指向一个目录下的文件
我在桌面上创建一个a.txt文件 写入如下内容:
ROOM="999"
MYSQL_HOST="99.88.89.11"
在pycharm中定义一个环境变量 aaa 指向 a.txt文件
在flask中使用 这个环境变量aaa
app = Flask(__name__)
# app.config.from_object(Config)
# app.config.from_pyfile("settings.py")
app.config.from_envvar("aaa")
print(app.config.get("ROOM"))
print(app.config.get("MYSQL_HOST"))