Flash框架学习

该博客介绍了Flask框架的配置加载方法,包括从配置对象、配置文件和环境变量加载。强调了环境变量加载在保护敏感信息方面的优势,并提供了一个结合多种加载方式的示例。作者还提醒读者需设置环境变量ENVOR_SETTING以避免运行时错误。最后,展示了如何通过工厂函数创建Flask应用,以实现更灵活的配置管理。
摘要由CSDN通过智能技术生成

学习资料:

b站:​​​​​​2021年史上最强Flask框架 Flask6天速成从入门到精通(无偿分享附赠课件资料)_哔哩哔哩_bilibilid

        稍后持续更新,如有错误,请大佬们纠正 

Day1 

一、Flask对象初始化参数

二、三种配置加载方式

(一)从配置对象加载:拥有继承性,但容易暴露敏感代码

(二)配置文件中加载:保护了敏感代码的泄露,但是文件路径是固定不变,每次在不同的编译环境下需要更改代码

(三)从环境变量中加载:独立、保护敏感代码,但是不方便,每次都需要设置环境变量

下面是相关的配置加载的代码

"""
Author:Lucky_bacon
Tool:Pycham、python3
"""

# 导入Flas k类库
from flask import Flask

#配置对象中加载配置信息
# class DefaultConfig(object):
# 	'''
# 	默认配置
# 	'''
# 	SECRET_KEY = 'lUCKY_BACON配置对象加载' #配置信息

#引用__name__函数,url指链接后缀,static_folder是文件存放位置
app = Flask(__name__,static_url_path='/s',static_folder='static_files')

#配置
# app.config.from_object(DefaultConfig)#对象的设置
# app.config.from_pyfile('setting.py')#文件加载的配置属性,调用了setting。py文件里面的信息
app.config.from_envvar('ENVOR_SETTING')
# app.config.from_envvar('ENVOR_SETTING',silent=True)
#环境变量的加载,里面的变量是自己去定义的,silent的作用:当环境变量不存在时,跳过它,避免报错,并返回个None

# 视图函数(路由)
@app.route('/')

#输出数据函数
def index():
	#输出配置信息(配置对象加载)
	print(app.config['SECRET_KEY'])
	return '<h1>Hello Flask!<h1>'

# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()

所以我们一般结合了三者的优缺点,采用了两者结合的方式来进行配置加载:对象加载默认配置+环境变量中加载来保护敏感信息

"""
Author:Lucky_bacon
Tool:Pycham、python3
"""

# 导入Flas k类库
from flask import Flask

#配置对象中加载配置信息
class DefaultConfig(object):
	'''
	默认配置
	'''
	SECRET_KEY = 'lUCKY_BACON' #配置信息

#创建一个flask工厂对象函数
def creat_flask_app(config):
	#引用__name__函数,url指链接后缀,static_folder是文件存放位置
	app = Flask(__name__,static_url_path='/s',static_folder='static_files')

	#配置
	app.config.from_object(DefaultConfig)#对象的设置

	app.config.from_envvar('ENVOR_SETTING')
	# app.config.from_envvar('ENVOR_SETTING',silent=True)
	#环境变量的加载,里面的变量是自己去定义的,silent的作用:当环境变量不存在时,跳过它,避免报错,并返回个None
	return app#如果不返回的话,下面的调用函数就无法获取信息

app = creat_flask_app(DefaultConfig)#调用创立的函数

# 视图函数(路由)
@app.route('/')
#输出数据函数
def index():
	#输出配置信息(配置对象加载)
	print(app.config['SECRET_KEY'])
	return '<h1>Hello Flask!<h1>'

# 启动实施(只在当前模块运行)
if __name__ == '__main__':
	app.run()

在这里的环境变量ENVOR_SETTING一定要记得添加环境变量,不然会报错,说环境变量ENVOR_SETTING没有定义

 

 

 

setting.py的代码

"""
Author  : Lucky_bacon
Tool  :  Pycham、python3
"""
SECRET_KEY = 'lUCKY_BACON real vaul'

三、app.run()函数的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值