close

【Flask】網頁設計教學(二):配置文件config想知道config是什麼就先看過來

一、前言

【Flask】網頁設計教學(一):快速搭起後端伺服器

上一篇說到如何快速架起後端伺服器,這篇來說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

 

這邊我們可以看到效果,我打開伺服器時我是除錯模式。

image

 

 

四、其他一堆可以配置的

其他一堆可以配置的可以到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 。例如,复制下面的 输出到你的配置中:

$ python -c 'import os; print(os.urandom(16))'
b'_5#y2L"F4Q8z\n\xec]/'

当发贴提问或者提交代码时,不要泄露密钥。

缺省值: None

会话 cookie 的名称。假如已存在同名 cookie ,本变量可改变。

缺省值: 'session'

认可会话 cookie 的域的匹配规则。如果本变量没有设置,那么 cookie 会被 SERVER_NAME 的所有子域认可。如果本变量设置为 False ,那么 cookie 域不会被设置。

缺省值: None

认可会话 cookie 的路径。如果没有设置本变量,那么路径为 APPLICATION_ROOT ,如果 APPLICATION_ROOT 也没有设置,那么会是 / 。

缺省值: None

为了安全,浏览器不会允许 JavaScript 操作标记为“ HTTP only ”的 cookie 。

缺省值: True

如果 cookie 标记为“ secure ”,那么浏览器只会使用基于 HTTPS 的请求发 送 cookie 。应用必须使用 HTTPS 服务来启用本变量。

缺省值: False

限制来自外部站点的请求如何发送 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 文件中为应用路由添加 任意名称。:

127.0.0.1 localhost.dev

如果这样配置了, 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

当 cookie 头部大于本变量配置的字节数时发出警告。缺省值为 4093 。 更大的 cookie 会被浏览器悄悄地忽略。本变量设置为 0 时关闭警告。

 

 

五、後記

第一步踏出來就是這麼簡單,歡迎大家支持恩哥Python,你的鼓勵跟打賞是我撰寫文章的原動力!

【Flask】網頁設計教學(一):快速搭起後端伺服器

 

arrow
arrow
    創作者介紹
    創作者 恩哥Python 的頭像
    恩哥Python

    恩哥Python量化教室-零基礎也能學會Python

    恩哥Python 發表在 痞客邦 留言(0) 人氣()