1.Flask介绍
Flask诞生于2010年, 使用python语言基于Werkzeug工具箱编写的轻量级Web开发框架
Flask本身相当于一个内核, 其他几乎所有的功能都要用到扩展(邮件:Flask-Mail, 用户认证:Flask-Login, 数据库:Flask-SQLAlchemy).
Flask的核心在于Werkzeug(路由模块), Jinja2模板引擎.
Flask的"轻", 不代表其功能不够强大, Flask拥有丰富的扩展, 其依赖于扩展来给应用添加功能, 众多的插件提供了数据库集成, 表单验证, 上传处理,各种各样的开放认证技术等, Flask的这些特性使得它在web开发方面变得非常流行
2.Flask的优点
- 框架很轻量
- 更新时依赖小
- 简洁
- 扩展性好
- 第三方库的选择面广,开发时可以结合自己喜欢用的轮子,也可以结合强大的python库
Flask_sqlalchemy:将Flask和SQLAlchemy很好的结合在一起,如django中的ORM *** 作
flask_script:用于生成命令,在项目根目录路径下使用命令;例如:python manage.py runserver
flask_migrate:用来实现数据库迁移(依赖flask_script)
flask-session:session放在redis里面
flask_restful:导入Api与Resource,用来实现自定义视图类
blinker:信号-触发信号.主要是让开发者可是在flask请求过程中定制一些行为
4.Flask配置文件加载方式
1.从配置对象中加载
# 1.导入flask
from flask import Flask
# 设置配置对象
class DefaultConfig(object):
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = 3306
# 2.创建flask对象
app = Flask(__name__)
# 从配置对象中加载配置
app.config.from_object(DefaultConfig)
# 3.写路由与视图
# route的参数:
# rule : 视图函数的访问地址
# methods : 允许访问的方法 中括号里大小写都行
@app.route(rule='/',methods =['Get','post'])
def index():
# get方式调用配置
mysql_port = app.config.get('MYSQL_PORT')
print(mysql_port)
# 字典键值方式调用配置
mysql_host = app.config['MYSQL_HOST']
print(mysql_host)
return 'load config from object'
2.从配置文件中加载
# 需要定义一个储存信息的文件,我这里放到 settings.py 里了
# 从文件加载 ,要把文件的类型也写上
app.config.from_pyfile('settings.py')
# 可以读取任意格式文件,这种方式也是可以的
# app.config.from_file('settings.py')
# 写视图和路由,这也和之前的没太大区别
@app.route('/')
def index():
# 获取配置信息
mysql_port = app.config.get('MYSQL_PORT') # 这里获取数据看你存储的文件里有什么信息,变量名对应上就好
mysql_host = app.config['MYSQL_HOST']
return 'Hello Flask'
3.从环境变量中加载,这个就相对麻烦点
(1).实现步骤:
- 创建配置文件(存放敏感信息, 不与项目同目录)
- 添加配置文件环境变量
# 环境变量读取数据 ,这的settings和上面配置的变量名对应
app.config.from_envvar('settings') 后面获取数据正常获取就行了
三种配置方式对比:
1.从对象加载配置: 配置方式灵活, 可复用性强, 但不安全
2.从文件加载配置: 复用性不好, 也不安全, 但是官方推荐用法
3.从环境变量加载: 相对安全, 利于配置敏感信息, 推荐使用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)