Tập tin cấu hình python của tôi ở đâu?
Khi chủ đề về cấu hình hoặc cấu hình, các tệp xuất hiện, thường có sự nhầm lẫn về chúng là gì, cách đọc chúng và những lợi ích đến từ việc sử dụng chúng. Trong bài viết này, chúng tôi sẽ giới thiệu các tệp cấu hình là gì trước khi giới thiệu mô-đun Python [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom0. Sau đó, chúng tôi sẽ sử dụng một số ví dụ để giúp bạn hiểu, tạo, đọc và cập nhật các tệp cấu hình của riêng bạn Show
Giới thiệu nhanh về tệp cấu hìnhMặc dù chủ yếu được sử dụng bởi các hệ điều hành để tùy chỉnh môi trường, các tệp cấu hình có thể được sử dụng cho nhiều mục đích sử dụng. Các trường hợp sử dụng phổ biến nhất đối với lập trình viên hoặc nhà phát triển là định cấu hình cài đặt ban đầu cho chương trình mà không cần dữ liệu mã hóa cứng vào chính chương trình. Điều này cho phép bạn thay đổi các cài đặt đó mà không cần phải vào chương trình và tự chỉnh sửa mã nguồn. Tóm lại, những thứ có thể thay đổi theo thời gian như địa chỉ IP, tên máy chủ, tên người dùng, mật khẩu, tên cơ sở dữ liệu, đều có thể được cấu trúc thành một tệp cấu hình và chương trình hướng đến tệp đó để biết thông tin cụ thể cần thiết. Đối với những người muốn cung cấp quyền truy cập công khai vào mã của họ trên kho lưu trữ như GitHub, các tệp cấu hình có thể được bao gồm trong tệp [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom1 để đảm bảo chúng không thể truy cập công khai, do đó bảo vệ thông tin nhạy cảm Chúng có cấu trúc như thế nào?Tôi không biết về bất kỳ tiêu chuẩn hoặc quy ước nào liên quan đến bố cục của tệp cấu hình. Một số định dạng cho phép dễ dàng lưu trữ các cấu trúc dữ liệu khá phức tạp để phục hồi và sử dụng sau này. Yếu tố quyết định về định dạng bạn sử dụng sẽ phụ thuộc vào ngôn ngữ lập trình của bạn dễ dàng xử lý nhất và sở thích cá nhân của riêng bạn. Với sự quan tâm của chúng tôi đối với Python, tôi sẽ tập trung vào một định dạng phổ biến nhưng thực sự, bầu trời là giới hạn đối với những gì bạn có thể sử dụng. Các định dạng phổ biến bao gồm INI, JSON, YAML và XML. Hôm nay chúng ta sẽ tập trung vào định dạng INI Tạo, đọc và cập nhật cấu hình. tập tin iniNgày trước, Microsoft Windows chủ yếu dựa vào các tệp khởi tạo hoặc tệp INI để định cấu hình cài đặt ứng dụng và hệ điều hành. Trong Python, chúng tôi có một mô-đun tên là [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom0 cho phép chúng tôi dễ dàng tạo, đọc và cập nhật các tệp INI. Nếu bạn chưa cài đặt nó, hãy sử dụng lệnh $ pip install configparser Cấu trúc của tệp INIMỗi tệp INI bạn tạo sẽ bao gồm các phần trong đó dữ liệu được lưu trữ bằng cách sử dụng các cặp khóa-giá trị theo cách tương tự như kiểu dữ liệu từ điển Python. Sau đây là mẫu viết tay của tệp INI mà chúng tôi sẽ tạo, sau đó chúng tôi sẽ đọc từ tệp đó, trước khi cập nhật tệp cuối cùng Tên tệp dự kiến. tập tin cấu hình. ban đầu [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom Lưu ý rằng tệp INI được đề xuất này bao gồm hai phần, [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom3 và [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom4. Dưới mỗi phần là các khóa dữ liệu (máy chủ, người dùng, mật khẩu, v.v. ) và các giá trị dữ liệu ( [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom5, v.v. ) Vì vậy, [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6 này có thể hữu ích nếu mã của chúng tôi cần tạo truy vấn SQL cho cơ sở dữ liệu Postgres của chúng tôi hoặc nếu chúng tôi cần đăng nhập vào một trang web cụ thể yêu cầu đặc quyền quản trị viên, dữ liệu đăng nhập và mật khẩu Bạn có thể thêm bao nhiêu phần tùy thích cho nhiều trường hợp sử dụng Tạo một tập tin cấu hình mớiMở một tệp Python mới, trong đó chúng tôi sẽ viết mã để tạo tệp INI. Đoạn mã sau phần lớn là tự giải thích. Lưu ý rằng trong đoạn mã này, tôi cho rằng hiện tại không có tệp cùng tên nào tồn tại do đó lệnh [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom7 cho [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom8 ở dòng thứ hai đến dòng cuối cùng của mã. Dưới đây là các bước
Vì vậy, đây là mã làm theo các bước trên [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom3 Thực thi tệp và kiểm tra thư mục bạn đã nhập trong mã để tìm tệp mới. Đây là ảnh chụp màn hình của tệp tôi đã tạo bằng mã ở trên Xin chúc mừng. Bạn đã viết tệp INI đầu tiên của mình. Bây giờ, làm thế nào để chúng ta sử dụng nó? Đọc một tập tin cấu hìnhVì lợi ích của bài tập này, giả sử bạn muốn tạo một truy vấn SQL từ một số mã nguồn mới mà bạn đang viết. Chúng tôi sẽ đọc tệp cấu hình và sử dụng dữ liệu như thế nào? . Sẽ dễ dàng nhận thấy sự khác biệt. Đây là các bước không có tệp cấu hình
Đây là mã bạn sẽ sử dụng mà không cần sử dụng tệp cấu hình [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom7 Vì vậy, khi chúng tôi thực thi mã này, chúng tôi hiện đã kết nối với cơ sở dữ liệu của mình, nhưng có một vấn đề rõ ràng. Chúng tôi đã mã hóa cứng tên người dùng và mật khẩu của mình vào mã nguồn để tất cả mọi người có thể xem. Không thông minh Bây giờ, hãy sử dụng cùng mã này với một số bổ sung để cho phép chúng tôi sử dụng [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6 mà chúng tôi đã tạo ở trên. Chúng tôi có thêm hai bước, [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom35 và sau đó đọc [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6. Dưới đây là các bước
Đây là mã bạn sẽ sử dụng khi kết nối bằng tệp INI của mình [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom1 Như bạn có thể thấy, chúng tôi cần sử dụng [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom9 để tạo một đối tượng, sau đó đọc tệp cấu hình. ini mà chúng tôi đã tạo trước đó. Đã đọc tệp cấu hình. ini, chúng tôi đã chuyển từng phần của tệp thành các biến riêng biệt, trong trường hợp này, tham số [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom3 cho [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom39 và tham số [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom4 cho useinfo [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6 Vì vậy, thay vì mã hóa cứng các giá trị thành các tham số cho kết nối cơ sở dữ liệu như chúng tôi đã làm trước đây, giờ đây chúng tôi có thể gọi từng giá trị chúng tôi cần từ tệp cấu hình. ini bằng cách sử dụng các phím và gán chúng cho các biến [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom7 Để chứng minh rằng dữ liệu đã được chuyển một cách thích hợp, hãy sử dụng lệnh in để kiểm tra [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom8 Vì vậy, phải thừa nhận thêm một chút mã trong ví dụ thứ hai, nhưng hãy nhìn vào những lợi ích bạn nhận được
Cập nhật tập tin cấu hình của bạnĐây chính là sự đơn giản. Đây là hai lựa chọn Đầu tiên là mở [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6 trong notepad và thực hiện các thay đổi theo cách thủ công. Hãy thay đổi các chi tiết của [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom73 từ [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom74 thành [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom75 Bây giờ hãy chạy lại mã $ pip install configparser4 Tùy chọn thứ hai là sử dụng [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom9 từ bên trong Python. Hãy thay đổi mật khẩu PostgreSQL từ [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom77 thành [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom78. Đây là mã $ pip install configparser8 Đây là kết quả để tóm tắtHôm nay chúng ta đã thảo luận về cấu hình hoặc tệp [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom31. Chúng là gì, tại sao chúng được sử dụng và một số định dạng phổ biến được sử dụng để cấu trúc chúng Chúng tôi đã giới thiệu mô-đun [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom9 được sử dụng trong Python và viết một tập lệnh để tạo một tệp INI mới có tên là [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom6 Sau đó, chúng tôi minh họa việc sử dụng (và nguy cơ) các giá trị được mã hóa cứng khi tạo kết nối SQL, trước khi sửa đổi tập lệnh kết nối SQL để cho phép chúng tôi truy cập các giá trị cần thiết từ tệp cấu hình. ini mà chúng tôi đã tạo Cuối cùng, chúng tôi đã chứng minh việc sửa đổi tệp INI dễ dàng như thế nào bằng cách sửa đổi thủ công một số dữ liệu bằng trình xử lý văn bản trước khi chúng tôi quay lại mô-đun [postgresql] host = localhost user = finxter1 password = myfinxterpw db = postgres [user_info] admin = David Yeoman login = finxter_freelancer password = freelancer_freedom9 để sửa đổi thêm Hãy nhớ rằng - Tôi đã sử dụng một ví dụ ở đây về việc tạo kết nối cơ sở dữ liệu, nhưng bạn có thể sử dụng tệp cấu hình cho bất kỳ dữ liệu nào bạn muốn giữ an toàn hoặc cho dữ liệu thường được sử dụng trong một số mã nguồn và đôi khi có thể thay đổi. Mọi thay đổi có thể được thực hiện một lần bằng cách chỉnh sửa tệp cấu hình thay vì sắp xếp qua hàng trăm dòng mã và chỉnh sửa thủ công tất cả các lần xuất hiện Tôi hy vọng bài viết này đã được sử dụng cho bạn. Cảm ơn vì đã đọc David Yeoman David là một lập trình viên Python và là một nhà văn kỹ thuật tạo ra các bài báo chuyên sâu dành cho những độc giả muốn có những lời giải thích đơn giản cho các chủ đề gây khó khăn bởi thuật ngữ chuyên ngành. Cũng là một thợ mộc, thợ kim loại, nhiếp ảnh gia phong cảnh và phi công, anh ấy làm nghề tự do sau 42 năm làm việc trong thế giới doanh nghiệp. Anh ấy có bằng MBA về Công nghệ
|