


Apakah cara yang betul untuk membaca dan menulis konfigurasi dalam projek Python?
1 Tulis konfigurasi dalam fail Python
Kaedah ini sangat mudah, tetapi ia mempunyai masalah keselamatan yang serius Konfigurasi ditulis dalam kod Jika seseorang memuat naik kod sumber kami ke github, maka konfigurasi pangkalan data adalah sama dengan didedahkan kepada dunia Sudah tentu, konfigurasi mudah ini juga boleh dilakukan apabila fail konfigurasi tidak mengandungi maklumat sensitif. kaedah.
2. Gunakan fail konfigurasi luaran
untuk menjadikan fail konfigurasi dan kod bebas Format fail json, yaml atau ini biasanya digunakan untuk menyimpan konfigurasi.
Gabungkan pembolehubah persekitaran dan perpustakaan python untuk membaca fail luaran Pertama sekali, pembangunan biasanya tidak bersentuhan dengan persekitaran pengeluaran, jadi fail konfigurasi persekitaran pengeluaran ditulis oleh operasi dan penyelenggaraan, dan operasi dan penyelenggaraan akan digunakan semua Selepas konfigurasi yang diperlukan ditulis, letakkannya di lokasi yang ditentukan pada pelayan pengeluaran, dan kod membaca konfigurasi dari lokasi yang ditentukan.
Untuk memudahkan penyahpepijatan bersatu program, pembolehubah persekitaran sistem (XXX_CONFIG_PATH) boleh dipersetujui terlebih dahulu untuk menentukan laluan storan fail konfigurasi.
Contohnya: eksport XXX_CONFIG_PATH =
/home/test/configs/config.ini Ini adalah untuk menetapkan pembolehubah persekitaran sementara
pembolehubah persekitaran linux, ubuntu
查看环境变量: env 设置永久环境变量 1.在/etc/profile 的文件下编辑,所改变的环境变量是面向所有用户的 export CLASSPATH = /../...该路径为绝对路径 2.在当前用户目录下./barsh_profile文件中修改 进行修改的话,仅对当前的用户生效 vim /home/wens/.barshc export CLASSPATH = /../...该路径为绝对路径 最后使用source命令 可以直接使环境变量生效 source/home/wens/.barshc //直接跟环境变量的文件
pembolehubah persekitaran windows
查看环境变量: set 查看某个环境变量: set path 修改环境变量 输入 “set 变量名=变量内容”即可。比如将path设置为“d:nmake.exe”,只要输入set path="d:nmake.exe" 注意:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。 永久性修改环境变量的方法有两种: 一种是直接修改注册表 另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看详细) 设置了环境变量后,需要重启 pycharm 生效
3. Gunakan terus pembolehubah persekitaran sistem untuk membaca konfigurasi
Kaedah ini Ia adalah perkara biasa dalam amalan untuk tidak menggunakan fail untuk menyimpan maklumat konfigurasi, tetapi untuk menyimpan semua maklumat konfigurasi dalam pembolehubah persekitaran Operasi dan penyelenggaraan menggunakan skrip penggunaan yang boleh digunakan untuk mengimport maklumat yang perlu dikonfigurasikan ke dalam pembolehubah persekitaran sebelum menjalankan program. .
Tidak menggunakan storan fail menguatkan perlindungan maklumat konfigurasi seperti kata laluan pada tahap tertentu, tetapi ia juga meningkatkan beban kerja operasi dan penyelenggaraan, terutamanya apabila konfigurasi perlu diubah suai.
4. Seni bina perkhidmatan mikro
Dalam sesetengah seni bina perkhidmatan mikro, pusat konfigurasi akan dibangunkan khas, dan program akan membaca secara langsung konfigurasi dari dalam talian dan pengurusan konfigurasi juga akan Membangunkan GUI untuk memudahkan pembangunan dan operasi dan penyelenggaraan.
5. Kaedah konfigurasi yang disyorkan dalam projek umum
-app -__init.py -app.py -settings -__init__.py -base.py -dev.py -prod.py
Antaranya, tambah logik penghakiman dalam __init__.py untuk menentukan sama ada persekitaran semasa harus digunakan untuk persekitaran pembangunan Atau persekitaran pengeluaran, dengan itu memuatkan parameter konfigurasi yang berbeza.
# 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))
di mana base.py menyimpan beberapa konfigurasi biasa, dan kemudian dalam persekitaran pembangunan dev.py dan persekitaran pengeluaran prod. Import pembolehubah base.py ke dalam py.
# 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"
di mana dev.py:
# 导入了base下所有参数 from .base import * database = { "protocol": "mysql+mysqlconnector", "username": "xxxxxx", "password": "hash string", "port": 3306, "database": "repo" }
di mana prod.py:
# 导入了base下所有参数 from .base import * database = { "protocol": "xxxxxxxxxxx", "username": "xxxxxxxxxxx", "password": "xxxxxxxxxxx", "port": 3344, "database": "xxxx" } 对于一些敏感信息可在环境变量里设置,通过如下方法获取,例如: MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp.163.com') MAIL_USERNAME = os.environ.get('MAIL_USERNAME') or 'test' MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or '12345678'
Atas ialah kandungan terperinci Apakah cara yang betul untuk membaca dan menulis konfigurasi dalam projek Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Jadual Kandungan Apakah analisis sentimen dalam perdagangan cryptocurrency? Mengapa analisis sentimen penting dalam sumber pelaburan cryptocurrency sumber data emosi a. Platform Media Sosial b. Media berita c. Alat untuk analisis sentimen dan teknologi alat yang biasa digunakan dalam analisis sentimen: Teknik yang diterima pakai: Mengintegrasikan analisis sentimen ke dalam strategi perdagangan bagaimana peniaga menggunakannya: Strategi Contoh: Dengan mengandaikan senario senario perdagangan BTC Penetapan: Isyarat Emosi: Tafsiran Pedagang: Keputusan: Batasan dan Risiko Analisis Sentimen Menggunakan Emosi Kajian 2025 baru -baru ini oleh Hamid

Apabila memproses set data besar yang melebihi memori dalam python, mereka tidak boleh dimuatkan ke dalam RAM pada satu masa. Sebaliknya, strategi seperti pemprosesan pemprosesan, penyimpanan cakera atau streaming harus diterima pakai; Fail CSV boleh dibaca dalam ketulan melalui parameter Pandas 'dan blok diproses oleh blok. Dask boleh digunakan untuk merealisasikan penjadualan dan penjadualan tugas yang serupa dengan sintaks pandas untuk menyokong operasi data memori yang besar. Tulis fungsi penjana untuk membaca fail teks mengikut baris untuk mengurangkan penggunaan memori. Gunakan format penyimpanan kolumnar parket yang digabungkan dengan pyarrow untuk membaca lajur atau kumpulan baris tertentu dengan cekap. Gunakan Memmap Numpy untuk memori peta tatasusunan berangka besar untuk mengakses serpihan data pada permintaan, atau menyimpan data dalam data ringan seperti SQLite atau DuckDB.

PenggunaanSublimetext'sbuildsystemtorunpythonscriptsandcatcherrorsbypressingctrl baftersettingthecorrectbuildsystemorcreatingacustomone.2.insertstrategicprint () statementShocheckVariahvariues, types, andexecutionflow, menggunakanLabelsandre.

UsePrint () StatementStoCheckVariableValuuesandExecutionFlow, AddingLabelSandTypesforClarity, andRemoveThembeforeCommitting; 2.Usethepythondebugger (PDB) withbreakpoint () TopAuseExecution, InspectVariables, danStepThoughleShoughleShoughleShoTHoughleShoughleShoughleShoTHoughleVariable, danStepThoughleShoTHoughleShoTheShoThoTheShoThoTheShoThereShoTher ()

Pastikan Python dipasang dan ditambah ke laluan sistem, jalankan Python-versi atau Python3-pengesahan versi melalui terminal; 2. Simpan fail python sebagai lanjutan .py, seperti hello.py; 3. Buat sistem binaan tersuai dalam sublimetext, pengguna Windows menggunakan {"cmd": ["python", "-u", "$ file"]}, pengguna macOS/linux menggunakan {"cmd": ["python3

Untuk menyahpepijat skrip python, anda perlu terlebih dahulu memasang lanjutan python dan mengkonfigurasi penterjemah, kemudian buat fail launch.json untuk menetapkan konfigurasi debugging, kemudian tetapkan titik putus dalam kod dan tekan F5 untuk memulakan debugging. Skrip akan dijeda pada titik putus, membolehkan pembolehubah pemeriksaan dan pelaksanaan langkah demi langkah. Akhirnya, dengan memeriksa masalah dengan melihat output konsol, menambah log atau menyesuaikan parameter, dan lain -lain, untuk memastikan bahawa proses debugging adalah mudah dan cekap selepas persekitaran adalah betul.

Contoh ini menunjukkan aplikasi web interaktif yang dibina di atas Pythonplotlydash. 1. Buat antara muka aplikasi web menggunakan DASH. 2. Pilih Siri Data (jualan, keuntungan, perbelanjaan) melalui menu lungsur (jatuh turun). 3. Gunakan plot secara dinamik melukis carta baris siri masa yang sama. 4. Data adalah siri masa 100 hari yang disimulasikan dan ditukar menjadi format yang panjang untuk lukisan mudah. 5. Fungsi panggil balik mengemas kini kandungan carta dalam masa nyata mengikut pilihan pengguna. Selepas berlari, aplikasi dimulakan di pelayan tempatan dan boleh diakses melalui penyemak imbas. Ia menyokong interaksi dinamik dan kemas kini masa nyata. Ia sesuai untuk pemula untuk memahami struktur asas dan mekanisme tindak balas dash. Ia juga boleh ditambah dan diakses oleh data sebenar.

InstallSublimeTextandPython,thenconfigureabuildsystembycreatingaPython3.sublime-buildfilewiththeappropriatecmdandselectorsettingstoenablerunningPythonscriptsviaCtrl B.2.OrganizeyourprojectbycreatingadedicatedfolderwithPythonfilesandsupportingdocument
