flask之Flask、config配置

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配置的更多相关文章
- Flask系列05--Flask的配置config
一.flask配置 示例说明, 就是使用config进行配置 from flask import Flask app = Flask(__name__) # type:Flask app.conf ...
- flask的config配置和给实例化传入参数
灵活性主要体现在配置上,需要什么就配置什么 from flask import Flask app = Flask(__name__) # type:Flask # 调试模式:是否开启调试模式并捕获异 ...
- 【flask】flask项目配置 app.config
[理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...
- Flask01 初识flask、flask配置
1 什么是flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 百度百科:点击前往 中文文档: ...
- [Python]Flask 源代码分析-config
flask有一个Config类,含from_object, from_pyfile, from_environ等载入命名空间的方法.载入命名空间的本质是载入一个dict[key]=value的字典. ...
- flask --- 02. 路由, 初始化配置,蓝图
一.Flask 路由 1.添加路由的方式 ① ② 实例: ① @app.route("/my_de") def detail() ② def detail() app.add_ur ...
- django和flask关于oralce数据库配置
Django中关于Oracle数据库配置 # 使用SERVICE_NAME DATABASES = { 'default': { 'ENGINE': 'django.db.backends.oracl ...
- Flask基础(04)-->相关配置参数
# 导入Flask from flask import Flask from flask import config # 创建Flask的应用程序 app = Flask(__name__) #=== ...
- flask 第八篇 实例化flask时的参数配置
Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...
随机推荐
- Python(10)
如果 a+b+c=1000,且 a^2+b^2=c^2(a,b,c 为自然数),如何求出所有a.b.c可能的组合? # 注意是三重循环 for a in range(0, 1001): for b i ...
- Codeforces Round #628 (Div. 2) 题解
人闲桂花落,夜静春山空. 月出惊山鸟,时鸣春涧中.--王维 A. EhAb AnD gCd You are given a positive integer x. Find any such 2 po ...
- 徐州H
#include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #defi ...
- mac OS 安装 Node.js
打开Node.js官网https://nodejs.org/zh-cn/选择你需要的版本 下载安装 安装完成 输入命令 node -v 查看版本号 输入命令 npm -v 查看版本号
- Linux 查看进程资源--ps、top命令
1,ps命令 ps能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态 命令参数: a 显示所有进 ...
- POJ - 2387 Til the Cows Come Home (最短路入门)
Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before ...
- muduo网络库源码学习————线程本地单例类封装
muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示: //线程本地单例类封装 // Use of this source code is governed b ...
- SpringBoot:整合Druid、MyBatis
目录 简介 JDBC 导入依赖 连接数据库 CRUD操作 自定义数据源 DruidDataSource Druid 简介 配置数据源 配置 Druid 数据源监控 配置 Druid web 监控 fi ...
- 初识Java和JDK下载安装
故事:Java帝国的诞生 对手: C&C++ ◆1972年C诞生 ◆贴近硬件,运行极快,效率极高. ◆操作系统,编译器,数据库,网络系统等 ◆指针和内存管理 ◆1982年C++诞生 ◆面向对象 ...
- 按照这些优化技巧来写 SQL,连公司 DBA 也鼓掌称赞!
原文链接:按照这些优化技巧来写 SQL,连公司 DBA 也鼓掌称赞! 刚毕业的我们,都以为使用 MySQL 是非常的简单的,无非都是照着 [select from where group by ord ...