【Flask】網頁設計教學(二):配置文件config想知道config是什麼就先看過來
一、前言
上一篇說到如何快速架起後端伺服器,這篇來說flask的初始化配置,也就是配製管理的部分。
二、flask中config是什麼?
不用想太多其實很簡單,就是flask的伺服器啟動時,網站運作的一些基本設定。
三、如何使用config
這邊教大家最簡單的方法,也是最常用的方法,簡單兩個步驟:
在你的server.py(伺服器端) import config 然後使用app.config.from_object(config)加入就可以了,
這邊要注意config是一個py檔,所以import前要先寫好,這邊我們看到範例config.py的部分我告訴他我的配置要DEBUG = True(是除錯模式)及JSON_AS_ASCII = False(顯示中文)。
# server.py from flask import Flask from flask import render_template, jsonify, request import config # 配置文件 import json # ============================================================================= # 配置及定義 # ============================================================================= app = Flask(__name__) app.config.from_object(config) # ============================================================================= # 基本 # ============================================================================= @app.route("/home", methods=['GET']) def home(): return render_template("home.html")
if __name__ == '__main__': app.run(host='0.0.0.0', port='5000')
# config.py
# 配置文件
DEBUG = True
JSON_AS_ASCII = False
這邊我們可以看到效果,我打開伺服器時我是除錯模式。
四、其他一堆可以配置的
其他一堆可以配置的可以到flask文件:https://dormousehole.readthedocs.io/en/latest/config.html
節錄部分官網大家可以參考一下。
- ENV
-
应用运行于什么环境。 Flask 和 扩展可以根据环境不同而行为不同,如打开或 关闭调试模式。
env
属性映射了这个配置键。本变量由FLASK_ENV
环境变量设置。如果本变量是在代码中设置的话,可能出 现意外。在生产环境中不要使用 development 。
缺省值:
'production'
Changelog
- DEBUG
-
是否开启调试模式。使用
flask run
启动开发服务器时,遇到未能处理的 异常时会显示一个交互调试器,并且当代码变动后服务器会重启。debug
属性映射了这个配置键。当ENV
是'development'
时,本变量会启用,并且会被FLASK_DEBUG
环境变量 重载。如果本变量是在代码中设置的话,可能会出现意外。在生产环境中不要开启调试模式。
缺省值:当
ENV
是'development'
时,为True
;否则为False
。
- TESTING
-
开启测试模式。异常会被广播而不是被应用的错误处理器处理。扩展可能也会为 了测试方便而改变它们的行为。你应当在自己的调试中开启本变量。
缺省值:
False
- PROPAGATE_EXCEPTIONS
-
异常会重新引发而不是被应用的错误处理器处理。在没有设置本变量的情况下, 当
TESTING
或DEBUG
开启时,本变量隐式地为真。缺省值:
None
- PRESERVE_CONTEXT_ON_EXCEPTION
-
当异常发生时,不要弹出请求情境。在没有设置该变量的情况下,如果
DEBUG
为真,则本变量为真。这样允许调试器错误请求数据。本变量通常不 需要直接设置。缺省值:
None
- TRAP_HTTP_EXCEPTIONS
-
如果没有处理
HTTPException
类型异常的处理器,重新引发该异常用于被 交互调试器处理,而不是作为一个简单的错误响应来返回。缺省值:
False
- TRAP_BAD_REQUEST_ERRORS
-
尝试操作一个请求字典中不存在的键,如
args
和form
,会返回一个 400 Bad Request error 页面。开启本变量,可以把这种错误作为一个未处理的 异常处理,这样就可以使用交互调试器了。本变量是一个特殊版本的TRAP_HTTP_EXCEPTIONS
。如果没有设置,本变量会在调试模式下开启。缺省值:
None
- SECRET_KEY
-
密钥用于会话 cookie 的安全签名,并可用于应用或者扩展的其他安全需求。 密钥应当是一个长的随机的
bytes
或者str
。例如,复制下面的 输出到你的配置中:当发贴提问或者提交代码时,不要泄露密钥。
缺省值:
None
- SESSION_COOKIE_NAME
-
会话 cookie 的名称。假如已存在同名 cookie ,本变量可改变。
缺省值:
'session'
- SESSION_COOKIE_DOMAIN
-
认可会话 cookie 的域的匹配规则。如果本变量没有设置,那么 cookie 会被
SERVER_NAME
的所有子域认可。如果本变量设置为False
,那么 cookie 域不会被设置。缺省值:
None
- SESSION_COOKIE_PATH
-
认可会话 cookie 的路径。如果没有设置本变量,那么路径为
APPLICATION_ROOT
,如果APPLICATION_ROOT
也没有设置,那么会是/
。缺省值:
None
- SESSION_COOKIE_HTTPONLY
-
为了安全,浏览器不会允许 JavaScript 操作标记为“ HTTP only ”的 cookie 。
缺省值:
True
- SESSION_COOKIE_SECURE
-
如果 cookie 标记为“ secure ”,那么浏览器只会使用基于 HTTPS 的请求发 送 cookie 。应用必须使用 HTTPS 服务来启用本变量。
缺省值:
False
- SESSION_COOKIE_SAMESITE
-
限制来自外部站点的请求如何发送 cookie 。可以被设置为
'Lax'
(推荐) 或者'Strict'
。参见 Set-Cookie 选项.缺省值:
None
Changelog
- PERMANENT_SESSION_LIFETIME
-
如果
session.permanent
为真, cookie 的有效期为本变量设置的数字, 单位为秒。本变量可能是一个datetime.timedelta
或者一个int
。Flask 的缺省 cookie 机制会验证电子签章不老于这个变量的值。
缺省值:
timedelta(days=31)
(2678400
秒)
- SESSION_REFRESH_EACH_REQUEST
-
当
session.permanent
为真时,控制是否每个响应都发送 cookie 。每次 都发送 cookie (缺省情况)可以有效地防止会话过期,但是会使用更多的带宽。 会持续会话不受影响。缺省值:
True
- USE_X_SENDFILE
-
当使用 Flask 提供文件服务时,设置
X-Sendfile
头部。有些网络服务器, 如 Apache ,识别这种头部,以利于更有效地提供数据服务。本变量只有使用这 种服务器时才有效。缺省值:
False
- SEND_FILE_MAX_AGE_DEFAULT
-
当提供文件服务时,设置缓存控制最长存活期,以秒为单位。可以是一个
datetime.timedelta
或者一个int
。在一个应用或者蓝图上 使用get_send_file_max_age()
可以基于单个文件重载 本变量。如果设置为
None
,那么send_file
会告诉浏览器使用条件请求 代替一个计时缓存,这样做比较推荐。缺省值:
None
- SERVER_NAME
-
通知应用其所绑定的主机和端口。子域路由匹配需要本变量。
如果配置了本变量,
SESSION_COOKIE_DOMAIN
没有配置,那么本变量 会被用于会话 cookie 的域。现代网络浏览器不会允许为没有点的域设置 cookie 。为了使用一个本地域,可以在你的host
文件中为应用路由添加 任意名称。:如果这样配置了,
url_for
可以为应用生成一个单独的外部 URL ,而不是 一个请求情境。缺省值:
None
- APPLICATION_ROOT
-
通知应用应用的根路径是什么。这个变量用于生成请求环境之外的 URL (请求 内的会根据
SCRIPT_NAME
生成;参见 应用调度 )。如果
SESSION_COOKIE_PATH
没有配置,那么本变量会用于会话 cookie 路 径。缺省值:
'/'
- PREFERRED_URL_SCHEME
-
当不在请求情境内时使用些预案生成外部 URL 。
缺省值:
'http'
- MAX_CONTENT_LENGTH
-
在进来的请求数据中读取的最大字节数。如果本变量没有配置,并且请求没有指 定
CONTENT_LENGTH
,那么为了安全原因,不会读任何数据。缺省值:
None
- JSON_AS_ASCII
-
把对象序列化为 ASCII-encoded JSON 。如果禁用,那么
jsonify
返回 的 JSON 会包含 Unicode 字符。这样的话,在把 JSON 渲染到 JavaScript 时会有安全隐患。因此,通常应当开启这个变量。缺省值:
True
- JSON_SORT_KEYS
-
按字母排序 JSON 对象的键。这对于缓存是有用的,因为不管 Python 的哈希种 子是什么都能够保证数据以相同的方式序列化。为了以缓存为代价的性能提高可 以禁用它,虽然不推荐这样做。
缺省值:
True
- JSONIFY_PRETTYPRINT_REGULAR
-
jsonify
响应会输出新行、空格和缩进以便于阅读。在调试模式下总是启用 的。缺省值:
False
- JSONIFY_MIMETYPE
-
jsonify
响应的媒体类型。缺省值:
'application/json'
- TEMPLATES_AUTO_RELOAD
-
当模板改变时重载它们。如果没有配置,在调试模式下会启用。
缺省值:
None
- EXPLAIN_TEMPLATE_LOADING
-
记录模板文件如何载入的调试信息。使用本变量有助于查找为什么模板没有载入 或者载入了错误的模板的原因。
缺省值:
False
- MAX_COOKIE_SIZE
-
当 cookie 头部大于本变量配置的字节数时发出警告。缺省值为
4093
。 更大的 cookie 会被浏览器悄悄地忽略。本变量设置为0
时关闭警告。
五、後記
第一步踏出來就是這麼簡單,歡迎大家支持恩哥Python,你的鼓勵跟打賞是我撰寫文章的原動力!
留言列表