配置管理

复杂的项目需要配置各种配置环境,如果设置项缺少可以直接硬编码进来,比如下面的方式:

app.config['DEBUG']=True
app.config['SECRET_KEY'] = 'hard to guess string'

 app.config 是 app.config.Config的实例,Config类继承了python内置的dict,所以我们可以使用dict的update方法

app.config.update(
DEBUG=True,
SECRET_KEY = 'hard to guess string'
)

  app.config 内置的配置变量可以参考Configuration Handling 如果设置的选项很多,有想要集中管理这些设置项,我们可以把这些配置项选择放置在一个文件中,app.config 支持多种更新配置的方式。假设我们将我们的配置项防止的settings.py这个文件中,内容如下:

DEBUG=True,
SECRET_KEY = 'hard to guess string'

我们可以选择一下三种方式加载文件

1. 通过配置文件加

app.config.from_object('settings') # 通过字符串模块名字导入配置文件

import settings

app.config.from_object(settings) #通过导入文件后直接传入模块对象

2.通过文件名字加载,直接传入文件名字,单是不限于只使用.py后缀的文件

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

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

#
# 在python环境变量中设置
# >export USERAPPLICATION_SETTINGS = 'settings.py'
app.config.from_envvar('USERAPPLICATION_SETTINGS')

 调试模式 

我们每次使用 app.run 方式开启本地应用,但是当我们在开发中修改了代码,都要手动的重启应用,这样的方式既不方便也不优雅。其实flask已经帮我们解决了开发模式代码修改后自动重启应用的功能,并在发生错误的时候,提供一个能获得错误上下文及可执行代码的调试页面。

两种开启调试模式的方法

1 直接在应用对象上设置

app.debug = True
app.run()

2. 作为run的参数传入

app.run(debug=True

注意事项:

    开启调试模式会成为一个巨大的安全隐患,因此决不能用于生产环境中。

 

flask配置管理的更多相关文章

  1. 从源码看Flask框架配置管理

    1 引言 Flask作为Python语言web开发的三大顶梁柱框架之一,对于配置的管理当然必不可少.一个应用从开发到测试到最后的产品发布,往往都需要多种不同的配置,例如是否开启调试模式.使用哪个数据库 ...

  2. Flask源码学习—config配置管理

    自己用Flask做了一个博客(www.hbnnlove.sinaapp.com),之前苦于没有对源码解析的文档,只能自己硬着头皮看.现在我把我自己学习Flask源码的收获写出来,也希望能给后续要学习F ...

  3. 【Flask】 项目结构说明

    项目结构 Flask的一大优势就是其极其轻量化.但是也需要注意到,如果我们要用Flask做一个大项目的话,把所有代码写在一个文件里肯定是不合适的.非常难以维护.但是和Django这种框架又不一样,Fl ...

  4. Python flask中的配置

    当你开始学习Flask时,配置看上去是小菜一碟.你仅仅需要在config.py定义几个变量,然后万事大吉. 然而当你不得不管理一个生产上的应用的配置时,这一切将变得棘手万分. 你不得不设法保护API密 ...

  5. Flask的配置与路由

    配置管理 flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:    {        'DEBUG':                    get_de ...

  6. 欢迎来到 Flask 的世界

    欢迎来到 Flask 的世界 欢迎阅读 Flask 的文档.本文档分成几个部分,我推荐您先读 < 安装 >,然后读< 快速上手 >.< 教程 > 比快速上手文档更详 ...

  7. flask之配置文件的加载和动态url的使用

    七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...

  8. flask+sqlite3+echarts2+ajax数据可视化

    前提: 准备Python + Flask+Sqlite3的平台环境(windows系统) 前面一节介绍flask怎么安装了,剩下sqlite3下载后解压,然后环境变量添加解压路径就行了 附加下载地址: ...

  9. flask+sqlite3+echarts2+ajax数据可视化报错:UnicodeDecodeError: 'utf8' codec can't decode byte解决方法

    flask+sqlite3+echarts2+ajax数据可视化报错: UnicodeDecodeError: 'utf8' codec can't decode byte 解决方法: 将 py文件和 ...

随机推荐

  1. WebAPI返回JSON

    web api写api接口时默认返回的是把你的对象序列化后以XML形式返回,那么怎样才能让其返回为json呢,下面就介绍两种方法: 方法一:(改配置法) 找到Global.asax文件,在Applic ...

  2. JMeter接口HTTP请求implementation不选java会报错解决方法

    1.若不对c参数和d参数进行URL编码则需要选择implementation为java: 2.若想不设implementation值,则需进行c参数d参数URLEncoding import java ...

  3. JAVA NIO学习一:NIO简介、NIO&IO的主要区别

    在前面学习了IO之后,今天我们开始进入NIO学习环节,首先我们会NIO做一个简单的介绍,让大家认识NIO,然后会和IO进行一个对比认识进行区分.好了,下面我们就开始学习: 一.NIO简介 1.概述 从 ...

  4. C# TreeView 控件的综合使用方法

    1.概述 该篇文章开发使用的语言c#,环境visualstudio2010,sql数据库.主要内容包括: (1)treeView控件添加根节点.子节点的基本方法,节点的删除. (2)把treeView ...

  5. ADODB.Connection、ADODB.RecordSet

    1.数据库连接对象(ADODB. Connection)该对象用于与ODBC数据库建立连接,所有对数据库的操作均通过该连接进行.数据库连接对象ADODB. Connection的作用象Delphi中的 ...

  6. Qt---Javascript/Qt交互、脚本化

    Qt提供了对Javascript的良好支持, 如果查阅过文档你就知道Qt有两个不同的Js封装引擎: QScriptEngine QJSEngine QScriptEngine出现的比较早(自Qt4.3 ...

  7. Button的五种点击事件

    1.内部类方式 class MyOnClickListener implements View.OnClickListener{ /** * Called when a view has been c ...

  8. 724. Find Pivot Index

    Given an array of integers nums, write a method that returns the "pivot" index of this arr ...

  9. 我是如何确认线上CLOSE_WAIT产生的原因及如何解决的。

    1.阐述 内部架构:Tomcat应用程序---> nginx ---> 其他Tomcat应用程序,内部Tomcat应用通过nginx调用其他应用. HTTP插件:HttpClient 4. ...

  10. Bmob 移动后端云服务器平台实现登录注册

    源码下载:http://download.csdn.net/download/jjhahage/10034519 PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己 ...