flask--基础知识点--1--配置方法

所有的配置变量名都必须大写,否则 app.config.get() 读不到

1 直接配置

config['HOST']='xxx.a.com'      # 实质上是通过使用下标的方式访问字典的“值”
print(app.config.get('HOST'))        # flask.config.get('HOST')可获得配置 键 HOST 的对应值,类似于字典对象的 get() 方法

2 通过环境变量加载配置

使用环境变量加载。这种方法依然支持silent参数,获得路径后其实
还是使用from_pyfile的方式加载的。

export MyAppConfig=/path/to/settings.cfg  
 
app.config.from_envvar('MyAppConfig')

这样将会加载环境变量指向的配置文件,并加载

3 通过对象加载

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'
 
class ProductionConfig(Config):
    DATABASE_URI = 'mysql://user@localhost/foo'
 
class DevelopmentConfig(Config):
    DEBUG = True
 
class TestingConfig(Config):
    TESTING = True
 
from flask import Flask
app = Flask(__name__)
 
app.config.from_object(ProductionConfig)
print(app.config.get('DATABASE_URI')) # mysql://user@localhost/foo

或者:

from flask import Flask
import default_config  # default_config可以是一个类【只有类变量】,还可以是一个.py文件【内容是多个常变量】
app = Flask(__name__)
 
app.config.from_object(default_config) # 这里 defualt_config是一个对象
print(app.config.get('HOST'))

4 通过配置文件

直接传入名字就行了
别的后缀的也可以,不局限于.py的

app.config.from_pyfile('default_config.py',silent=True)      # 这里defualt_config.py是文件
 #  默认为 silent=False ,即当配置文件不存在的时候抛出异常,
 #  使用silent=True的时候只是会返回False,但是不抛出异常

# default_config.py
HOST = 'localhost'
PORT = 5000
DEBUG = True
 
# 使用配置
print(app.config['HOST'])

或者

# 也可以在引用之后直接传入对象
import default_config
app.config.from_object(default_config)
4.1 default_config.py所在目录

1 默认在root_path下
在这里插入图片描述

from flask import Flask

# app = Flask(__name__, instance_relative_config=True)
app = Flask(__name__)
app.logger.setLevel(logging.DEBUG)

logging.warning("root_path=" + app.root_path)
logging.warning("instance_path=" + app.instance_path)
app.config.from_pyfile("default_config.py")

logging.warning(app.config["A"])

2 在instance目录下
在这里插入图片描述

from flask import Flask


app = Flask(__name__)
app.logger.setLevel(logging.DEBUG)

logging.warning("root_path=" + app.root_path)
logging.warning("instance_path=" + app.instance_path)
# app.config.from_pyfile(r"E:\PychamrProject\flask_test\instance\default_config.py") # 绝对路径
app.config.from_pyfile(r"../instance/default_config.py") # 相对路径

logging.warning(app.config["A"])

"""
# 绝对路径时default_config.py可以放在任意目录下

# 相对路径时相对的是root_path[而 root_path=/flask_test/app1]目录
"""

from flask import Flask


app = Flask(__name__, instance_relative_config=True)
app.logger.setLevel(logging.DEBUG)

logging.warning("root_path=" + app.root_path)
logging.warning("instance_path=" + app.instance_path)
app.config.from_pyfile(r"default_config.py")

logging.warning(app.config["A"])

3 在指定目录下
在这里插入图片描述
在这里插入图片描述

from flask import Flask, request, render_template, redirect, current_app


app = Flask(__name__, instance_path=r"C:\Users\xxxxxxxxx\Desktop\test", instance_relative_config=True)
app.logger.setLevel(logging.DEBUG)

logging.warning("root_path=" + app.root_path)
logging.warning("instance_path=" + app.instance_path)
app.config.from_pyfile(r"default_config.py")

logging.warning(app.config["A"])

[4 总结]
在这里插入图片描述


参考博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值