当前位置: 首页 > news >正文

网站的建设与维护实践报告网站开发的研究现状

网站的建设与维护实践报告,网站开发的研究现状,秒收录关键词代发,小程序开发公司主页制作标准代码与环境配置解耦 git分支的代码应做到“环境无关”:代码本身不硬编码任何环境特定的配置(如数据库连接、密钥、API地址),而是通过外部机制动态注入。 配置与代码分离:将配置信息存储在代码库之外(如环…

代码与环境配置解耦

git分支的代码应做到“环境无关”:代码本身不硬编码任何环境特定的配置(如数据库连接、密钥、API地址),而是通过外部机制动态注入。

配置与代码分离:将配置信息存储在代码库之外(如环境变量、独立配置文件、密钥管理服务),避免提交到 Git 仓库。

环境变量/配置文件 随便用,对内存的影响完全可以忽略不记
案例:典型 Web 应用的配置
  • 环境变量:约 10 个变量(如数据库 URL、API 密钥、调试模式),总大小约 1KB
  • 配置文件:一个 500 行的 JSON 文件(约 5KB),解析后内存占用约 10-20KB
  • 总内存影响:不到 50KB,远低于一个简单 Python 对象(如空列表占用 40KB)。

对于YAML和TOML的选择来说,我更倾向于TOML,主要是TOML对缩进及空格数量不敏感,YAML的缩进和横杠-真烦啊!

各种配置文件的优缺点对比

配置格式语法复杂度结构化数据支持注释支持数据类型支持适用场景解析库
.ini差(仅支持键值对)否(所有值为字符串)小型应用configparser
settings.py强(Python 代码)Django/Python 项目Python 直接解析
.env差(仅键值对)否(所有值为字符串)12 Factor Apppython-dotenv
json强(嵌套支持)Web 开发、APIjson
yaml强(嵌套支持)DevOps、KubernetesPyYAML
toml强(嵌套支持)Python/Rust 配置toml

选择合适的配置文件

  • Web 开发/Djangosettings.py
  • 存储环境变量/API 密钥.env
  • 前后端通用配置、API 交互json
  • DevOps/Kubernetesyaml
  • Python、Rust 工程配置toml
  • 小型桌面应用、简单配置.ini

在 Web 应用中,使用数据库存储用户配置(如用户偏好、通知设置、API 密钥等)是一种常见的方法。与 .env、配置文件或环境变量相比,数据库存储具有更强的可管理性,但也存在一定的性能和安全性问题。下面是数据库存储用户配置的优缺点分析实现方式

Python 代码(Django ORM)

from django.db import modelsclass UserSettings(models.Model):user = models.OneToOneField("auth.User", on_delete=models.CASCADE)theme = models.CharField(max_length=50, default="light")notifications = models.BooleanField(default=True)language = models.CharField(max_length=10, default="en")updated_at = models.DateTimeField(auto_now=True)

查询用户配置

settings = UserSettings.objects.get(user=request.user)
print(settings.theme)  # "light"

应用程序修改自身配置并保留注释

通常情况下,配置文件(如 .ini, .env, .yaml, .toml, .json)主要用于存储应用的静态配置,而应用程序一般只读取配置。但在某些特定场景下,应用程序允许修改自身的配置文件。

配置格式只读解析库解决方案(修改保存)
.iniconfigparser使用 ConfigObj
.envdotenv_values手动读取/合并
.yamlPyYAML使用 ruamel.yaml
.tomltoml使用 tomlkit
.jsonjson使用 commentjson
from configobj import ConfigObjconfig = ConfigObj("config.ini", encoding="utf-8")# 修改配置
config["settings"]["theme"] = "dark"# 保存时会保留注释
config.write()

from tomlkit import parsewith open("config.toml", "r") as f:toml_data = parse(f.read())# 修改配置
toml_data["app"]["debug"] = False# 保存 (保留注释)
with open("config.toml", "w") as f:f.write(toml_data.as_string())

http://www.yayakq.cn/news/532653/

相关文章:

  • 美的网站建设设计购物网站
  • 昆明城乡建设局网站北京开发网站建设
  • 个人备案20字备注短视频搜索优化
  • 做软件推广网站怎么赚钱2021国内最好用免费建站系统
  • 青岛地产网站建设吉安建设局官方网站
  • 企业网站建设方案教程西安到北京西火车时刻表
  • 网站建设管理工作小结网站在哪里变更备案信息
  • 站酷网在线官网网络公关公司收费
  • 免费关键词排名优化广州企业搜索引擎优化服务
  • 让别人做网站需要提供什么南宁市公共资源交易中心网
  • 宝安响应式网站建设推荐黄石网站建设
  • 机械产品做那几个网站好台州seo外链推广代理
  • 学风网站建设正规的镇江网站建设
  • 西安市网站建设WordPress和微信同步
  • php与dw怎么做校园网站江门seo网络推广
  • 静态展示网站模板下载做网站一个月赚多少
  • 青海省高等级公路建设管局网站15年做哪些网站能致富
  • 对新网站做seo大概需要多久精仿源码社区网站源码
  • 招生网站开发的背景高青县住房和城乡建设局网站
  • 企业网站图片上传新项目首码对接平台
  • 做网站要买服务器吗市场营销考试题目及答案2022
  • 怎么做网站弹幕免费网站安全
  • 网站建设丶金手指下拉14电商网站平台建设方案
  • 临夏州建设厅官方网站张店学校网站建设哪家好
  • 做网站一年百万在线oa免费crm
  • 如何做响应式网站视频教程昆明网站设计制作公司
  • 濮阳网站关键词中英文网站开发
  • 功能性的网站设计制作网站流量地址评价是什么意思
  • 做视频点播网站需要服务器存储吗cms自助建站系统
  • 建设网站终身免费ordown wordpress