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 访问连接:
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
2022-01-10 python2 excel读取内容并查找替换字符串,保留原样式
2022-01-10 python 读写保存excel xlrd,xlwt,xlutils保留原样式、格式、背景样式、文字样式