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. thinkphp5和nginx不得不说的故事

    由于之前学习用的都是apsche,所以对ngnix一窍不通,在这里写给正在学习的同行,希望可以帮助到你们: 如果你不会用apache部署tp5的可以查看我之前发布的文章,里面有提到 phpstudy ...

  2. 前端js传值JSON.stringify(obj)

    用bootstrap-talbe前端传值 首先直接传肯定是不行的; 其次做一个全局变量也不行,因为这里的问题的是用bootstrap-table进行生成的操作HTML,从这里datass = row ...

  3. 2019-2020-1 20199326《Linux内核原理与分析》第七周作业

    实验内容:分析Linux内核创建一个新进程的过程 初始化Menu Os,输入fork可以看到menuos触发了一个fork系统调用 再开一个shell,进入调试模式,设置几个断点sys_clone,d ...

  4. java中wait和sleep的区别

    文章目录 Wait和sleep的区别 唤醒wait和sleep java中wait和sleep的区别 在本篇文章中,我们将会讨论一下java中wait()和sleep()方法的区别.并讨论一下怎么使用 ...

  5. 斐波那契数列计算html代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Java 线程池(ThreadPoolExecutor)原理分析与实际运用

    在我们的开发中"池"的概念并不罕见,有数据库连接池.线程池.对象池.常量池等等.下面我们主要针对线程池来一步一步揭开线程池的面纱. 有关java线程技术文章还可以推荐阅读:< ...

  7. POJ 2054 Color a Tree解题报告

    题干 Bob is very interested in the data structure of a tree. A tree is a directed graph in which a spe ...

  8. ubuntu16 安装curl

    sudo apt-get install openssl sudo apt-get install libssl-dev wget -P /usr/local/software  https://cu ...

  9. C# 数据操作系列 - 1. SQL基础操作

    0.前言 前篇介绍了一些数据库的基本概念和以及一些常见的数据库,让我们对数据库有了一个初步的认识.这一篇我们将继续为C#数据操作的基础填上一个空白-SQL语句. SQL(Structured Quer ...

  10. 2020年python开发微信小程序,公众号,手机购物商城APP

    2020年最新的技术全栈,手机短信注册登陆等运用, 精准定位用户 支付宝支付 以及前后端从0到大神的全部精解 2020年最新的技术全栈,手机短信注册登陆等运用, 精准定位用户 支付宝支付 以及前后端从 ...