Flask的核心在于Werkzeug(路由模块), Jinja2模板引擎 类比Django:路由、模板、ORM Flask要完成功能,依赖于丰富的插件(扩展模块)
常问问题:Django与Flask有什么区别
Flask: Flask是轻量级框架 Flask自由、灵活,第三库的选择面广,可以使用强大的Python三方库 入门简单,即便没有多少web开发经验,也能很快做出网站 非常适用于小型网站 非常适用于开发web服务的API Django: Django适合企业级网站开发 自带的ORM很非常优秀 上手容易,开发文档详细、完善、相关资料丰富 成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
virtualenvwrapper 来创建、管理我们的虚拟环境
开发中,我们一个项目是要对应应虚拟环境的。
2.1安装 虚拟环境
pip install virtualenvwrapper-win
2.2 配置虚拟环境主目录
在windows上环境变量中 添加 环境变量 WORKON_HOME
3.1 创建虚拟环境
mkvirtualenv 虚拟环境名
3.2 查看所有虚拟环境
workon
3.3 切换进入虚拟环境
workon 虚拟环境名
查看命令是否在虚拟环境中,要看 命令行的前缀是否有括号(虚拟环境名)
3.4 离开虚拟环境
deactivate
pip install flask==1.0.2
导出环境中所有的包
pip freeze > requirements.txt
在环境中 批量安装包
pip install -r requirements.txt
6.1 Flask配置理解
app.config是一个类字典的对象,里面已经有了很多默认的配置。我们可以向里面添加自己新的配置。在app.py中添加配置信息并打印
# 导包
from flask import Flask
# 2.实例化Flask对象
app = Flask(__name__)
# 配置信息
print(app.config)
appapp.config["room"] = "127"
app.config["MYSQL_HOST"] = "127.0.0.1"
# 获取配置中的信息
print(app.config["room"])
print(app.config["MYSQL_HOST"])
# 3.编写路由与视图
@app.route('/')
def hello_world():
print("__name__=",__name__)
return 'Hello World!
'
# 4.启动服务
if __name__ == '__main__':
app.run()
我们把配置信息写入到一个类中,然后去加载
配置类:我们写入到settings模块
# 定义一个配置类
# 属性 必须是 全大写
class Config:
# 配置 属性=值
ROOM = "127"
MYSQL_HOST = "127.0.0.1"
返回到app.py中修改
# 导包
from flask import Flask
from settings import Config
# 2.实例化Flask对象
app = Flask(__name__)
# 配置信息
print(app.config)
# appapp.config["room"] = "127"
# app.config["MYSQL_HOST"] = "127.0.0.1"
app.config.from_object(Config)
# 获取配置中的信息
# print(app.config["room"])
# print(app.config["MYSQL_HOST"])
print(app.config.get("ROOM"))
print(app.config.get("MYSQL_HOST"))
# 3.编写路由与视图
@app.route('/')
def hello_world():
print("__name__=",__name__)
return 'Hello World!
'
# 4.启动服务
if __name__ == '__main__':
app.run()
我们直接把配置信息写入文件,然后去加载
# 定义一个配置类
ROOM = "3308"
MYSQL_HOST = "172.20.10.3"
在pycharm中定义一个环境变量,这个环境变量指向一个目录下的文件
定义Config.txt文件
内容为:
ROOM = "3308"
MYSQL_HOST = "172.20.10.3"
在pycharm中定义一个环境变量指向Config.txt
在Flask中使用这个环境变量
app = Flask(__name__)
# 配置信息
# app.config.from_object(Config)
# app.config.from_pyfile("settings.py")
app.config.from_envvar("test")
print(app.config.get("ROOM"))
print(app.config.get("MYSQL_HOST"))