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. 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 ...

  2. Codeforces Round #628 (Div. 2) 题解

    人闲桂花落,夜静春山空. 月出惊山鸟,时鸣春涧中.--王维 A. EhAb AnD gCd You are given a positive integer x. Find any such 2 po ...

  3. 徐州H

    #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #defi ...

  4. mac OS 安装 Node.js

    打开Node.js官网https://nodejs.org/zh-cn/选择你需要的版本 下载安装 安装完成 输入命令 node -v 查看版本号 输入命令 npm -v 查看版本号

  5. Linux 查看进程资源--ps、top命令

    1,ps命令 ps能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态 命令参数:          a                                      显示所有进 ...

  6. 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 ...

  7. muduo网络库源码学习————线程本地单例类封装

    muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示: //线程本地单例类封装 // Use of this source code is governed b ...

  8. SpringBoot:整合Druid、MyBatis

    目录 简介 JDBC 导入依赖 连接数据库 CRUD操作 自定义数据源 DruidDataSource Druid 简介 配置数据源 配置 Druid 数据源监控 配置 Druid web 监控 fi ...

  9. 初识Java和JDK下载安装

    故事:Java帝国的诞生 对手: C&C++ ◆1972年C诞生 ◆贴近硬件,运行极快,效率极高. ◆操作系统,编译器,数据库,网络系统等 ◆指针和内存管理 ◆1982年C++诞生 ◆面向对象 ...

  10. 按照这些优化技巧来写 SQL,连公司 DBA 也鼓掌称赞!

    原文链接:按照这些优化技巧来写 SQL,连公司 DBA 也鼓掌称赞! 刚毕业的我们,都以为使用 MySQL 是非常的简单的,无非都是照着 [select from where group by ord ...