Python Flask Config配置文件、类配置 及 安全

前言全局说明

Python Flask config 配置文件


一、安装flask模块

官方源:

pip3 install flask==2.3.2

国内源:

pip3 install flask==2.3.2 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

以上二选一,哪个安装快用哪个
flask 安装时间 2023-11

更多国内源: https://www.cnblogs.com/wutou/p/17949398


二、引用模块

from flask import Flask

三、启动服务

https://www.cnblogs.com/wutou/p/17949220


四、基于全局变量的配置

4.1.1 文件名:index.py
from flask import Flask
app=Flask(__name__)
## 加载配置文件
app.config.from_object('config.settings')
## 访问配置文件的值
print(app.config['DB_HGOST'])
@app.route('/')
def index():
return '<h2>Hello Flask</h2>'
if __name__ == '__main__':
# app.debug = True
# app.run(host='127.0.0.1',port = 5000)
app.run(host='0.0.0.0',port = 5000)

config.settings 是配置文件的存放文件夹和文件名,相当于 config/setting.py
config 文件夹和 templates 文件夹在同级目录下

4.1.2 文件名:settings.py
DB_HOST='127.0.0.1'
DB_USER='root'
DB_PWD='123456'

注意:配置文件中的变量一般是大写。也必须写成大写,否则可能会被Flask忽略

4.2 访问连接:

http://127.0.0.1:5000

4.3 效果:

五、配置文件区分生产和开发本地配置

正常情况下,开发人员开发时链接的是开发数据库;而服务器上是生产数据库,
假设,有人在上传代码时,忘记删除本地数据库,就会把服务器的配置覆盖,
导致生产环境出问题。

所以,现在解决的方法,就是将相同公用的配置写到 settings.py 而每个开发人员
要链接自己电脑上的开发数据库写到另外一个文件 localsettings.py 中。
之后,在 git 的 .gitignore 文件中,添加不上传到仓库的文件,就可以避不小心覆盖生产环境的配置。

这样做还有一个好处是,不泄漏生产环境的信息。

5.1.1 文件名:settings.py
DB_HOST='192.168.1.100'
DB_USER='root'
DB_PWD='123456'
try:
form .localsettings import *
except ImportError:
pass
5.1.2 文件名:localesettings.py
DB_HOST='127.0.0.1'
DB_USER='root'
DB_PWD='123456'

假设:192.168.1.100 是生产服务器IP,127.0.0.1是开发者本地的IP

from 将同目录下的 localsettings.py 内容导入 settings.py
用 try 是为了捕获程序异常,假如没有 localsettings.py 文件,程序也不会报错退出。
还可以利用子文件值覆盖父文件的值


六、基于类的配置

6.1.1 文件名:index.py
from flask import Flask
app=Flask(__name__)
## 加载配置文件
### 开发配置
app.config.from_object('config.settings.DevSettings')
### 生产配置(同时,二选一)
# app.config.from_object('config.settings.ProSettings')
## 访问配置文件的值
print(app.config['DB_HGOST'])
@app.route('/')
def index():
return '<h2>Hello Flask</h2>'
if __name__ == '__main__':
# app.debug = True
# app.run(host='127.0.0.1',port = 5000)
app.run(host='0.0.0.0',port = 5000)

config.settings 是配置文件的存放文件夹和文件名,相当于 config/setting.py
config 文件夹和 templates 文件夹在同级目录下

4.1.2 文件名:settings.py
class BaseSetting(object):
DB_USER='root'
DB_PWD='123456'
class DevSettings(BaseSetting):
DB_HOST='127.0.0.1'
class ProSettings(BaseSetting):
DB_HOST='127.0.0.1'

BaseSetting 是公共内容,开发和生产都要用到的配置,这里用户名和密码是实例
DevSettings(BaseSetting) DevSettings 继承了 BaseSetting 的内容;
ProSettings(BaseSetting) ProSettings 继承了 BaseSetting 的内容;
这样有些公共内容就不用谢多次了


以上就是两种主流的配置文件方法




免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://www.bilibili.com/video/BV11Y411h71J/?p=25
https://www.bilibili.com/video/BV11Y411h71J/?p=27



posted @   悟透  阅读(844)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
历史上的今天:
2022-01-10 python2 excel读取内容并查找替换字符串,保留原样式
2022-01-10 python 读写保存excel xlrd,xlwt,xlutils保留原样式、格式、背景样式、文字样式
点击右上角即可分享
微信分享提示