Python 프로젝트에서 구성을 읽고 쓰는 올바른 방법은 무엇입니까?
1. Python 파일에 구성 작성
이 방법은 매우 간단하지만 심각한 보안 문제가 있습니다. 누군가가 소스 코드를 업로드하면 구성을 작성하면 안 됩니다. GitHub의 데이터베이스 구성은 세상에 공개되는 것과 동일합니다. 물론 구성 파일에 민감한 정보가 포함되어 있지 않은 경우에도 이 간단한 방법을 사용할 수 있습니다.
2. 외부 구성 파일
을 사용하여 구성 파일과 코드를 독립적으로 만듭니다. 일반적으로 구성을 저장하는 데 json, yaml 또는 ini 파일 형식이 사용됩니다.
환경 변수와 Python 라이브러리를 결합하여 외부 파일을 읽습니다. 우선 개발은 일반적으로 생성 환경과 접촉하지 않으므로 생성 환경의 구성 파일은 운영 및 유지 관리 후에 작성됩니다. 애플리케이션에 필요한 구성을 작성하고 프로덕션 서버의 지정된 위치에 배치하면 코드는 지정된 위치에서 구성을 읽습니다.
프로그램의 통합 디버깅을 용이하게 하기 위해 시스템 환경 변수(XXX_CONFIG_PATH)에 미리 동의하여 구성 파일의 저장 경로를 지정할 수 있습니다.
비밀번호 등 구성 정보의 보호를 어느 정도 강화하는 파일 저장소를 사용하지 않지만, 특히 구성을 수정해야 하는 경우 운영 및 유지 관리 작업량이 늘어납니다.예: 내보내기 구성을 읽으려면 시스템 환경 변수를 사용하세요.
이 방법은 구성 정보를 저장하기 위해 파일을 사용하지 않습니다. 실제로는 모든 구성 정보가 환경 변수에 저장됩니다. 프로그램이 실행되기 전에 필요한 ansible 배포 스크립트를 통해 배포됩니다. 구성된 정보를 환경 변수로 가져옵니다.
4. 마이크로서비스 아키텍처
일부 마이크로서비스 아키텍처에서는 구성 센터가 특별히 개발되며, 프로그램이 온라인에서 구성을 직접 읽어 개발, 운영 및 유지 관리를 용이하게 하는 구성 관리용 GUI도 개발됩니다. .
5. 일반 프로젝트에서 권장되는 구성 방법 查看环境变量:
env
设置永久环境变量
1.在/etc/profile 的文件下编辑,所改变的环境变量是面向所有用户的
export CLASSPATH = /../...该路径为绝对路径
2.在当前用户目录下./barsh_profile文件中修改 进行修改的话,仅对当前的用户生效
vim /home/wens/.barshc
export CLASSPATH = /../...该路径为绝对路径
最后使用source命令 可以直接使环境变量生效
source/home/wens/.barshc //直接跟环境变量的文件
__init__.py
에는 현재 환경이 개발 환경을 사용하는지 아니면 프로덕션 환경을 사용하는지 판단하는 판단 로직을 추가하여 다양한 구성 매개변수를 로드합니다.查看环境变量:
set
查看某个环境变量:
set path
修改环境变量
输入 “set 变量名=变量内容”即可。比如将path设置为“d:nmake.exe”,只要输入set path="d:nmake.exe"
注意:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。
永久性修改环境变量的方法有两种:
一种是直接修改注册表
另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看详细)
设置了环境变量后,需要重启 pycharm 生效
base.py
는 몇 가지 공통 구성을 저장한 다음 개발 환경dev.py 및 프로덕션 환경 prod.py에서 base.py
변수를 가져옵니다.-app
-__init.py
-app.py
-settings
-__init__.py
-base.py
-dev.py
-prod.py
# settings/__init__.py
import os
# os.environ.get() 用于获取系统中的环境变量,因为在生产环境中,一般都会把一些关键性的参数写到系统的环境中。
# 所以PROFILE的值其实就是我们配置的环境变量的值。如果没有配这个值,默认走dev的配置。
# PYTHON_PRO_PROFILE = os.environ.get("PYTHON_PRO_PROFILE", "dev")
PYTHON_PRO_PROFILE = os.environ.get("PYTHON_PRO_PROFILE")
print("是开发环境还是生产环境: ", PYTHON_PRO_PROFILE)
if PYTHON_PRO_PROFILE == "dev":
from .dev import *
elif PYTHON_PRO_PROFILE == "prod":
from .prod import *
else:
raise Exception("Not supported runtime profile {}".format(PYTHON_PRO_PROFILE))
# settings/base.py
import os
import time
# os.path.abspath: 获取完整路径(包含文件名)
current_exec_abspath = os.path.abspath(__file__)
current_exec_dir_name, _ = os.path.split(current_exec_abspath)
current_up_dir, _ = os.path.split(current_exec_dir_name)
current_up2_dir, _ = os.path.split(current_up_dir)
print('------log dir=------', current_up2_dir)
# 日志文件路径设置
log_path = f"{current_up2_dir}/logs"
if not os.path.exists(log_path):
os.makedirs(log_path)
t = time.strftime("%Y_%m_%d")
log_path_file = f"{log_path}/interface_log_{t}.log"
위 내용은 Python 프로젝트에서 구성을 읽고 쓰는 올바른 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

이 기사는 데비안 시스템에서 Apache Logs를 분석하여 웹 사이트 성능을 향상시키는 방법을 설명합니다. 1. 로그 분석 기본 사항 Apache Log는 IP 주소, 타임 스탬프, 요청 URL, HTTP 메소드 및 응답 코드를 포함한 모든 HTTP 요청의 자세한 정보를 기록합니다. 데비안 시스템 에서이 로그는 일반적으로 /var/log/apache2/access.log 및 /var/log/apache2/error.log 디렉토리에 있습니다. 로그 구조를 이해하는 것은 효과적인 분석의 첫 번째 단계입니다. 2. 로그 분석 도구 다양한 도구를 사용하여 Apache 로그를 분석 할 수 있습니다.

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

개발 환경과 생태계에서 Laravel과 Python의 비교는 다음과 같습니다. 1. Laravel의 개발 환경은 간단하며 PHP와 작곡가 만 필요합니다. Laravelforge와 같은 풍부한 확장 패키지를 제공하지만 확장 패키지 유지 보수는시기 적절하지 않을 수 있습니다. 2. 파이썬의 개발 환경도 간단하며 파이썬과 PIP 만 필요합니다. 생태계는 거대하고 여러 분야를 다루지 만 버전 및 종속성 관리는 복잡 할 수 있습니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

이 기사에서는 DDOS 공격 탐지 방법에 대해 설명합니다. "Debiansniffer"의 직접적인 적용 사례는 발견되지 않았지만 DDOS 공격 탐지에 다음과 같은 방법을 사용할 수 있습니다. 효과적인 DDOS 공격 탐지 기술 : 트래픽 분석을 기반으로 한 탐지 : 갑작스런 트래픽 성장, 특정 포트에서의 연결 감지 등의 비정상적인 네트워크 트래픽 패턴을 모니터링하여 DDOS 공격을 식별합니다. 예를 들어, Pyshark 및 Colorama 라이브러리와 결합 된 Python 스크립트는 실시간으로 네트워크 트래픽을 모니터링하고 경고를 발행 할 수 있습니다. 통계 분석에 기반한 탐지 : 데이터와 같은 네트워크 트래픽의 통계적 특성을 분석하여

이 기사에서는 Debian 시스템에서 NginxSSL 인증서를 업데이트하는 방법에 대해 안내합니다. 1 단계 : CertBot을 먼저 설치하십시오. 시스템에 CERTBOT 및 PYTHON3-CERTBOT-NGINX 패키지가 설치되어 있는지 확인하십시오. 설치되지 않은 경우 다음 명령을 실행하십시오. sudoapt-getupdatesudoapt-getinstallcertbotpython3-certbot-nginx 2 단계 : 인증서 획득 및 구성 rectbot 명령을 사용하여 nginx를 획득하고 nginx를 구성하십시오.

데비안 시스템의 readdir 함수는 디렉토리 컨텐츠를 읽는 데 사용되는 시스템 호출이며 종종 C 프로그래밍에 사용됩니다. 이 기사에서는 ReadDir를 다른 도구와 통합하여 기능을 향상시키는 방법을 설명합니다. 방법 1 : C 언어 프로그램을 파이프 라인과 결합하고 먼저 C 프로그램을 작성하여 readDir 함수를 호출하고 결과를 출력하십시오.#포함#포함#포함#포함#includinTmain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {
