一,介绍
Flask框架的核心在于Werkzeug(模块),jinja2模块引擎
类比django:路由,模板,ORM
Flask要完成功能,依赖于丰富的插件(拓展模块)
Flask与Djange的区别
在框架的轻重方面:
重量级框架:为方便业务程序的开发,提供了丰富的工具,组件,如django
轻量级框架:只提供WEB框架的核心功能,自由,灵活,高度定制,如Flask
明确WEB开发的任务
视图开发:根据客户端请求实现业务逻辑(视图)编写
模板,数据库等其他的都是为了帮助视图开发,不是必备的
其他区别:
django提供了:
django-admin(快速创建项目工程目录),manage.py(管理项目工程),orm模型(数据库抽象层),admin(后台管理站点)
,而这些,flask只有路由,其他都需要扩展包提供
Flask扩展包:
Flask-SQLalchemy(操作数据库),Flask-migrate(管理迁移数据库),Flask-Mail(邮件),Flask-WTF(表单),Flask-script(插入脚本),Flask-Login(认证用户状态),Flask-RESTful(开发REST API的工具),Flask-Bootstrap(集成前端Twitter Bootstarp框架),FLask-Moment(本地化日期和时间)
Flask与django区别总结:
1,django有自己的模板和路由和orm,没有服务,使用的是wsgiref
2,flask只有自己的路由,模板使用jinja2.ORM使用的是flask-sqlalchemy模块
3,flask是轻量级框架,之封装了核心功能(路由),使用比较灵活
二,环境搭建
virtualenvwrapper来创建、管理我们的虚拟环境
实际开发中,每一个项目都有对应的虚拟环境
为什么要安装虚拟环境?
虚拟环境可以让系统Python环境保持干净,纯洁,避免包的混乱和版本的冲突。专为不同的项目搭建不同的环境,为每个项目使用虚拟环境可以保证项目只访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建虚拟环境的源。
安装虚拟环境:pip install virtualenvwrapper -win
配置虚拟环境主目录:在Windows上环境变量中添加环境变量WORKON_HOME
虚拟环境操作:
创建虚拟环境 mkvirtualenv 虚拟环境名
查看所有虚拟环境 workon
切换进入虚拟环境 workon 虚拟环境名
查看命令是否在虚拟环境中,要看命令行的前缀是否有括号
离开虚拟环境 dective
三,项目配置
1,Flask配置理解
app.config是一个类字典的对象,里面已经有了很多默认的配置。我们可以向里面添加自己新的配置。
在app.py中添加配置信息并打印
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
2,配置对象加载
我们把配置信息写入到一个类中,然后去加载
配置类:我们写入到settings模块
# 定义一个配置类
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.get("ROOM"))
print(app.config.get("MYSQL_HOST"))
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(host="127.0.0.1",port=8888,debug=True)
3,配置文件加载
我们直接把配置信息写入文件,然后去加载
ROOM = "5304"
MYSQL_HOST = "99.77.32.42"
4,环境变量中加载
在pycharm中定义一个环境变量,这个环境变量指向一个目录下的文件
定义test.txt文件
内容为:
ROOM = "999"
MYSQL_HOST = "99.88.89.11"
在pycharm中定义一个环境变量指向test.txt
在Flask中使用这个环境变量
app = Flask(__name__)
app.config.from_envvar("test")