实例化Flask 的参数   及 对app  的配置

lask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢?

Flask配置

app.config["DEBUG"] = True

代码只要发生改动,自动重启Flask程序(app.run)

在控制台打印的信息非常全面

app = Flask(__name__)
app.config['DEBUG']= True

app.default_config
DEBUG --- 编码阶段 代码重启 日志输出级别很低 页面中会显示错误 错误代码
TESTING --- 测试阶段 日志输出级别较高 无限接近线上环境

Flask的配置就是在 app.config 中添加一个键值对,但是你存进去的键必须是config中应该存在的,如果不再存在的话,它会默认无用,就这么放着

{'DEBUG': False,  # 是否开启Debug模式'TESTING': False,  # 是否开启测试模式'PROPAGATE_EXCEPTIONS': None,  # 异常传播(是否在控制台打印LOG) 当Debug或者testing开启后,自动为True'PRESERVE_CONTEXT_ON_EXCEPTION': None,  # 一两句话说不清楚,一般不用它'SECRET_KEY': None,  # 之前遇到过,在启用Session的时候,一定要有它'PERMANENT_SESSION_LIFETIME': 31,  # days , Session的生命周期(天)默认31天'USE_X_SENDFILE': False,  # 是否弃用 x_sendfile'LOGGER_NAME': None,  # 日志记录器的名称'LOGGER_HANDLER_POLICY': 'always','SERVER_NAME': None,  # 服务访问域名'APPLICATION_ROOT': None,  # 项目的完整路径'SESSION_COOKIE_NAME': 'session',  # 在cookies中存放session加密字符串的名字'SESSION_COOKIE_DOMAIN': None,  # 在哪个域名下会产生session记录在cookies中'SESSION_COOKIE_PATH': None,  # cookies的路径'SESSION_COOKIE_HTTPONLY': True,  # 控制 cookie 是否应被设置 httponly 的标志,'SESSION_COOKIE_SECURE': False,  # 控制 cookie 是否应被设置安全标志'SESSION_REFRESH_EACH_REQUEST': True,  # 这个标志控制永久会话如何刷新'MAX_CONTENT_LENGTH': None,  # 如果设置为字节数, Flask 会拒绝内容长度大于此值的请求进入,并返回一个 413 状态码'SEND_FILE_MAX_AGE_DEFAULT': 12,  # hours 默认缓存控制的最大期限'TRAP_BAD_REQUEST_ERRORS': False,# 如果这个值被设置为 True ,Flask不会执行 HTTP 异常的错误处理,而是像对待其它异常一样,# 通过异常栈让它冒泡地抛出。这对于需要找出 HTTP 异常源头的可怕调试情形是有用的。'TRAP_HTTP_EXCEPTIONS': False,# Werkzeug 处理请求中的特定数据的内部数据结构会抛出同样也是“错误的请求”异常的特殊的 key errors 。# 同样地,为了保持一致,许多操作可以显式地抛出 BadRequest 异常。# 因为在调试中,你希望准确地找出异常的原因,这个设置用于在这些情形下调试。# 如果这个值被设置为 True ,你只会得到常规的回溯。'EXPLAIN_TEMPLATE_LOADING': False,'PREFERRED_URL_SCHEME': 'http',  # 生成URL的时候如果没有可用的 URL 模式话将使用这个值'JSON_AS_ASCII': True,# 默认情况下 Flask 使用 ascii 编码来序列化对象。如果这个值被设置为 False ,# Flask不会将其编码为 ASCII,并且按原样输出,返回它的 unicode 字符串。# 比如 jsonfiy 会自动地采用 utf-8 来编码它然后才进行传输。'JSON_SORT_KEYS': True,#默认情况下 Flask 按照 JSON 对象的键的顺序来序来序列化它。# 这样做是为了确保键的顺序不会受到字典的哈希种子的影响,从而返回的值每次都是一致的,不会造成无用的额外 HTTP 缓存。# 你可以通过修改这个配置的值来覆盖默认的操作。但这是不被推荐的做法因为这个默认的行为可能会给你在性能的代价上带来改善。'JSONIFY_PRETTYPRINT_REGULAR': True,'JSONIFY_MIMETYPE': 'application/json','TEMPLATES_AUTO_RELOAD': None,
}

以上这些Key,都可以被改写,当然他们也都是有默认值存在的,如果没有特殊情况,不要改写它的默认值

修改配置的方式大约是两种

1.直接对app.config进行修改

app.config["DEBUG"] = True

2.使用类的方式导入

   这叫做类导入配置

首先要有一个settings.py的文件

class Debugsetting(object):DEBUG = TrueSECRET_KEY = 'AAA'SESSION_COOKIE_NAME = 'debug session'class TestingSetting(object):TESTING = TrueSECRET_KEY = "BBB"SESSION_COOKIE_NAME = "testing session"

然后我们在Flask的启动文件中就可以这么写

from flask import Flask, jsonify
from settings import Debugsetting
from settings import TestingSettingapp = Flask(__name__)# app.config.from_object(Debugsetting)
app.config.from_object(TestingSetting)@app.route("/info", methods=["GET", "POST"])
def info():return jsonify({'a': 12})if __name__ == '__main__':print(app.config)app.run('0.0.0.0', 5000)

那么在Flask实例化的时候,传递的参数是什么呢?

其实可以理解为对Flask实例进行的初始配置

static_folder = 'static',  # 静态文件目录的路径 默认当前项目中的static目录
static_host = None,  # 远程静态文件所用的Host地址,默认为空
static_url_path = None,  # 静态文件目录的url路径 默认不写是与static_folder同名,远程静态文件时复用
# host_matching是否开启host主机位匹配,是要与static_host一起使用,如果配置了static_host, 则必须赋值为True
# 这里要说明一下,@app.route("/",host="localhost:5000") 就必须要这样写
# host="localhost:5000" 如果主机头不是 localhost:5000 则无法通过当前的路由
host_matching = False,  # 如果不是特别需要的话,慎用,否则所有的route 都需要host=""的参数
subdomain_matching = False,  # 理论上来说是用来限制SERVER_NAME子域名的,但是目前还没有感觉出来区别在哪里
template_folder = 'templates'  # template模板目录, 默认当前项目中的 templates 目录
instance_path = None,  # 指向另一个Flask实例的路径
instance_relative_config = False  # 是否加载另一个实例的配置
root_path = None  # 主模块所在的目录的绝对路径,默认项目目录

static_folder   静态文件目录的路径   static_url_path   静态文件目录的url  路径

from flask import Flask, jsonify, render_template

app = Flask(__name__, static_folder='statics', static_url_path="/aaa")@app.route("/info", methods=["GET", "POST"])
def info():return render_template("info.html")if __name__ == '__main__':# print(app.config)app.run('0.0.0.0', 5000)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title></head>
<body>
info 界面<img src="/aaa/12.png" alt="">
</body>
</html>

常用参数

static_folder = 'static',  # 静态文件目录的路径 默认当前项目中的static目录
static_url_path = None,  # 静态文件目录的url路径 默认不写是与static_folder同名,远程静态文件时复用
template_folder = 'templates'  # template模板目录, 默认当前项目中的 templates 目录

转载于:https://www.cnblogs.com/XLHIT/p/11171454.html

flask flask参数 app 配置相关推荐

  1. Flask - app的配置和实例化Flask的参数

    目录 Flask - app的配置和实例化Flask的参数 app的配置 app的配置 Flask - app的配置和实例化Flask的参数 app的配置 基本用法: from flask impor ...

  2. python flask跨域_Flask配置Cors跨域的实现

    1 跨域的理解 跨域是指:浏览器A从服务器B获取的静态资源,包括Html.Css.Js,然后在Js中通过Ajax访问C服务器的静态资源或请求.即:浏览器A从B服务器拿的资源,资源中想访问服务器C的资源 ...

  3. python函数库app_Python的Flask框架中@app.route的用法教程

    在我上一篇文章,我搭了一个框架,模拟了Flask网站上"@app.route('/')"第一条例子的行为. 如果你错过了那篇"这不是魔法",请点击这里. 在这篇 ...

  4. ws5102怎么设置虚拟服务器,【华为路由器WS5102怎么设置开双频】规格参数|限速|APP|配置|功耗_摘要频道_什么值得买...

    华为路由器WS5102怎么设置开双频(规格参数|限速|APP|配置|功耗) 双频段可合二为一为一个热点,自动切换倒是真不错,免了之前360路由器5G连不上2.4不切换最后只能放弃5G的遗憾 四根天线错 ...

  5. vscode之python框架flask 断点调试的配置(官方推荐的配置,务必注意端口)

    flask的配置务必注意端口,默认端口5000如果被占用,你访问的数据无法返回,请更换端口! 更多细节配置,看官方文档,最权威:Debugging configurations for Python ...

  6. 魔坊APP项目-15-邀请好友(业务逻辑流程图、服务端提供邀请好友的二维码生成接口、客户端通过第三方识别微信二维码,服务端提供接口允许访问、App配置私有协议,允许第三方应用通过私有协议,唤醒APP)

    邀请好友 1.业务逻辑流程图 客户端提供点击"邀请好友"以后的页面frame,html/invite.html,代码: <!DOCTYPE html> <html ...

  7. 第二章 Flask——Flask中的request

    第二章 Flask--Flask中的request 一.request.method 二.request.form 三.request.args 四.request.values 五.request. ...

  8. php api 无符号整数基数为16的整数参数的字符串表示形式,[1.12]-参数规则:接口参数规则配置 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    "播下一种思想,收获一种行为:播下一种行为,收获一种习惯:播下一种习惯,收获一种性格:播下一种性格,收获一种命运." --<成君忆:水煮三国> 1.12.1 参数解析 ...

  9. 2021-2027全球及中国APP配置软件行业研究及十四五规划分析报告

    2021-2027全球及中国APP配置软件行业研究及十四五规划分析报告 2019年,全球APP配置软件市场规模达到了xx亿元,预计2026年将达到xx亿元,年复合增长率(CAGR)为xx%.中国市场规 ...

最新文章

  1. Android热修复升级探索——SO库修复方案
  2. python的类写法_Python3 类静态数据的写法
  3. 数据库导出到excel解决科学计数法问题
  4. matlab excel 进程,Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题
  5. pygame游戏_Pygame游戏——Pong游戏(三)
  6. HDU 2686 MCMF
  7. Java-使用字符串修改彩票程序
  8. DDPush 任意门消息推送 开源免费实时信息推送服务器
  9. 《给QTreeView表项添加CheckBox和图标》:系列教程之七
  10. c语言入门经典的作用,C语言入门经典
  11. 【IIS】VS+IIS发布网站
  12. PostgreSQL下载与安装(Windows版)
  13. linux mariadb 升级,Mariadb数据库更新
  14. TI运放仿真软件TINA
  15. Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备
  16. ssh-keygen处理gitee
  17. /usr/bin/ld: cannot find -lxxx 的解决办法
  18. ubuntu下使用github安装R Packages[已解决]
  19. 有4个圆塔,圆心分别为(2,2)……今输入任一点坐标,求该点坐标建筑物高度。
  20. 用Python实现求整数各位上数字之和

热门文章

  1. H.264 视频质量评价方法 (基于视频内容)
  2. 安卓 mysql读取图片路径_android开发之数据库存取图片
  3. ES Filebeat 使用 Pipeline 处理日志中的 @timestamp
  4. PowerDesigner生成SQL
  5. Idea添加Jetty时提示JMX module is not included
  6. 【前端】数字媒体技术专业主要课程及就业方向
  7. 【SHOI2009】【BZOJ2028】会场预约(线段树染色)
  8. 农行运营合规管理心得体会_老员工写诗讲述农行40年运营风采
  9. JAVA集合Collection与泛型<T>→List、ArrayList、LinkedList、→Set、HashSet、hashCode()→Map、HashMap、→Properties
  10. 百度安装php环境,Centos下安装类百度文库环境