flask_config.py

 '''
flask的配置:
1.flask项目初始化配置:
(1)app=Flask(__name__)#初始化声明falsk项目为当前py文件,app应用变量名可以更改
(2)Flask()参数配置:
①template_folder=''指定静态模板文件页面所在文件目录,不指定默认为templates目录
②static_folder=''指定静态文件所在的文件目录如staticfiles,不指定默认为static目录
在默认静态文件目录中,模板页面中的请求路径直接写相对路径,例如:src="/static/1.png"即可直接请求返回
在更换了自定义静态文件目录时,以下两种方式可以解决静态文件返回问题:
a.增加参数配置static_url_path='/static',相当于是请求路径src="/static/1.png"不变,将请求路径/static映射到自定义的静态文件目录staticfiles
b.直接修改模板文件中的路径,例如将src="/static/1.png"改为src="/staticfiles/1.png"(不推荐使用) 2.app.config[]的项目实例配置:
(1)常用配置:
"DEBUG": None, #debug模式的设置,开发环境用
"TESTING": False, #测试模式的设置,无限接近线上环境
"SECRET_KEY": None, #session秘钥配置
"PERMANENT_SESSION_LIFETIME": timedelta(days=31), #session有效期时间的设置
"SESSION_COOKIE_NAME": "session", #cookies中存储的session字符串的键
"JSONIFY_MIMETYPE": "application/json", #设置jsonify响应时返回的contentype类型
(2)app.config.from_object(self,object)实例化对象进行配置
以DEBUG和TESTING模式设置切换为例:
①自定义一个模块如settings.py
②创建两种模式的不同类,配置相应属性参数
③导入settings.py中的模式类,通过app.config.from_object(self,object)进行配置
''' from flask import Flask, render_template #1.flask项目初始化配置
#templates是flask默认的模板文件目录,static是falsk默认的静态文件路径,只需要配置即可
# ①template_folder=''指定静态模板文件页面所在文件目录,不指定默认为templates目录
# ②static_folder=''与static_url_path='、static'的配合使用
app=Flask(__name__,template_folder='html',static_folder='staticfiles',static_url_path='/static') @app.route('/index')
def index():
return render_template('index0.html') #2.app.config[]的项目实例配置:源码中default_config字典
'''
default_config = ImmutableDict(
{
"ENV": None, #虚拟环境,当前项目运行环境
"DEBUG": None, #debug模式的设置,开发环境用,自动重启项目,日志级别低,报错在前端显示具体代码
"TESTING": False, #测试模式的设置,无限接近线上环境,不会重启项目,日志级别较高,不会在前端显示错误代码
"PROPAGATE_EXCEPTIONS": None,
"PRESERVE_CONTEXT_ON_EXCEPTION": None,
"SECRET_KEY": None, #session秘钥配置
"PERMANENT_SESSION_LIFETIME": timedelta(days=31), #session有效期时间的设置
"USE_X_SENDFILE": False,
"SERVER_NAME": None, #主机名设置
"APPLICATION_ROOT": "/", #应用根目录配置
"SESSION_COOKIE_NAME": "session", #cookies中存储的session字符串的键
"SESSION_COOKIE_DOMAIN": None, #session作用域
"SESSION_COOKIE_PATH": None, #session作用的请求路径
"SESSION_COOKIE_HTTPONLY": True, #session是否只支持http请求方式
"SESSION_COOKIE_SECURE": False, #session安全配置
"SESSION_COOKIE_SAMESITE": None,
"SESSION_REFRESH_EACH_REQUEST": True,
"MAX_CONTENT_LENGTH": None,
"SEND_FILE_MAX_AGE_DEFAULT": timedelta(hours=12),
"TRAP_BAD_REQUEST_ERRORS": None,
"TRAP_HTTP_EXCEPTIONS": False,
"EXPLAIN_TEMPLATE_LOADING": False,
"PREFERRED_URL_SCHEME": "http",
"JSON_AS_ASCII": True,
"JSON_SORT_KEYS": True,
"JSONIFY_PRETTYPRINT_REGULAR": False,
"JSONIFY_MIMETYPE": "application/json", #设置jsonify响应时返回的contentype类型
"TEMPLATES_AUTO_RELOAD": None,
"MAX_COOKIE_SIZE": 4093,
}
)
''' #(1)一般开发写测试需要经常切换debug和测试模式
# app.config['DEBUG']=True #debug模式,日志级别低,一般在开发环境用,报错直接回在前端页面显示,具体到代码
# app.config['TESTING']=True #测试模式,日志级别较高,无限接近线上环境,报错只在后端显示具体错误,前端页面之后提示有错,不会具体显示 @app.route('/test')
def test():
print(int('sdf'))#此行代码运行会报错,开启DEBUG模式,直接在前端页面显示错误代码,而在TESTING模式下前端页面之会提示错误,并不会有具体代码
return '直接通过app.config[]对DEBUG或TESTING模式进行设置!' #(2)通过自定义模块类来实现debug和测试模式的配置切换(自定义模式切换模块seetings.py)
from settings import DebugMode
from settings import TestingMode
#使用app.config.from_object(self,object)进行DEBUG或TESTING模式的设置
# app.config.from_object(DebugMode) #开启DEBUG模式,直接在前端页面显示错误代码
app.config.from_object(TestingMode) #而在TESTING模式下前端页面之会提示错误,并不会有具体代码 @app.route('/two_modes')
def mode():
print(int('sdf11'))#此行代码运行会报错
return '通过app.config.from_object(self,object)进行DEBUG或TESTING模式的设置!' if __name__ == '__main__':
app.run()

index0.html

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h2>项目中指定模板文件目录html中的index页面,默认不指定为templates模板目录</h2> <div><h2>项目中指定静态文件目录staticfiles返回当前图片,默认不指定为static静态文件目录</h2>
<img src="/static/1.png" alt=""></div>
</body>
</html>

seetings.py

 class DebugMode(object):
DEBUG=True
SECRET_KEY='SGHJK34H5JKP5OJO6J@#$%^&'
SESSION_COOKIE_NAME='NOT SESSION' class TestingMode(object):
TESTING=True
SECRET_KEY='#$%^&*(*&^%$%^&*(*&^&*()_)(*SGHJK34H5JKP5OJO6J@#$%^&'
SESSION_COOKIE_NAME='MD5_DATA'

flask之Flask、config配置的更多相关文章

  1. Flask系列05--Flask的配置config

    一.flask配置 示例说明, 就是使用config进行配置 from flask import Flask ​ app = Flask(__name__) # type:Flask app.conf ...

  2. flask的config配置和给实例化传入参数

    灵活性主要体现在配置上,需要什么就配置什么 from flask import Flask app = Flask(__name__) # type:Flask # 调试模式:是否开启调试模式并捕获异 ...

  3. 【flask】flask项目配置 app.config

    [理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...

  4. Flask01 初识flask、flask配置

    1 什么是flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 百度百科:点击前往 中文文档: ...

  5. [Python]Flask 源代码分析-config

    flask有一个Config类,含from_object, from_pyfile, from_environ等载入命名空间的方法.载入命名空间的本质是载入一个dict[key]=value的字典. ...

  6. flask --- 02. 路由, 初始化配置,蓝图

    一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...

  7. django和flask关于oralce数据库配置

    Django中关于Oracle数据库配置 # 使用SERVICE_NAME DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracl ...

  8. Flask基础(04)-->相关配置参数

    # 导入Flask from flask import Flask from flask import config # 创建Flask的应用程序 app = Flask(__name__) #=== ...

  9. flask 第八篇 实例化flask时的参数配置

    Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...

随机推荐

  1. tp5--开启与关闭调试模式

    https://www.cnblogs.com/finalanddistance/p/8906000.html TP5 显示错误信息   在TP5中,我们运行的代码有错误无法执行时,只显示页面错误,而 ...

  2. java 8 stream reduce详解和误区

    目录 简介 reduce详解 总结 java 8 stream reduce详解和误区 简介 Stream API提供了一些预定义的reduce操作,比如count(), max(), min(), ...

  3. 一篇文章让你彻底弄懂SSL/TLS协议

    目录 SSL/TLS的应用 TLS协议的架构 握手协议 主密码和预备主密码 TLS记录协议 一篇文章让你彻底弄懂SSL/TLS协议 SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法 ...

  4. zabbix自动监控钉钉报警

    钉钉报警 一:设置钉钉机器人  二:zabbix服务器server端配置 1.修改zabbix_server.conf文件 [root@server ~]# vim /usr/local/zabbix ...

  5. 第八章服务器raid及配置实战

      版本 特点 磁盘个数 可用空间 故障磁盘数 应用环境 RAID0 读写速度快,数据容易丢失 两个 全部 一块 测试,临时性 RAID1 读写速度慢,数据可靠 至少两个,可以2的倍数 总容量的一半 ...

  6. 【JAVA基础】10 Object类

    1. Object类概述 是类层次结构的根类 每个类都使用 Object 作为超类 所有类都直接或者间接的继承自该类 所有对象(包括数组)都实现这个类的方法. 2. Object的构造方法 publi ...

  7. Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler

    ChannelInboundHandlerAdapter ChannelInboundHandlerAdapter是ChannelInboundHandler的一个简单实现,默认情况下不会做任何处理, ...

  8. [故障解决]图文:windows apache无法启用 端口被占用

    windows apache无法启用 端口被占用 1 XAMPP Error: Apache shutdown unexpectedly 无法启动apache,显示的log为: 2 查了一下端口, 通 ...

  9. 人工智能与VR结合:带来体验多样性

    人工智能服务--微软认知服务(Microsoft Cognitive Services)最初包括视觉.语音.语言.知识和搜索五大类共 21 项 API.应用了这些 API 的系统能看.能听.能说话,并 ...

  10. 第七周CorelDRAW课总结

    1.这节课学到了什么知识? "交互式透明工具""交互式阴影工具"以及"交互式调和工具"制作水晶表情包. 2.有什么心得体会? 无 3.存在的 ...