Tải thông tin đăng nhập từ tệp python
Để giải thích thêm về câu hỏi của tôi, hãy tưởng tượng bạn đang làm việc trên một dự án Python cần mật khẩu để kết nối với cơ sở dữ liệu hoặc "bí mật ứng dụng khách" để kết nối với dịch vụ web. Đâu là nơi tốt nhất để lưu trữ thông tin đó để bạn không vô tình chia sẻ nó khi phân phối mã? Show Mẫu phổ biến nhất mà tôi từng thấy là nhúng nó trực tiếp vào tập lệnh Python, nhưng sau đó để trống, kèm theo nhận xét để bạn điền vào
Đến từ PHP, phương pháp tiêu chuẩn là lưu trữ thông tin đăng nhập dưới dạng các biến trong một tệp riêng biệt, sau đó nhập vào tập lệnh. Bằng cách đó, bạn có thể dễ dàng "gitignore" tệp đó, nhưng tôi không thấy điều này thường xuyên trong Python câu trả lờitầng 1
Trong trường hợp này, tôi nghĩ rằng nó phụ thuộc vào ứng dụng. Có một vài loại ứng dụng chính khác nhau (ít nhất là những loại mà tôi viết)
Hi vọng điêu nay co ich
Tầng 1 Trả lời
Tôi chưa bao giờ nghĩ đến việc lưu trữ thông tin đó dưới dạng các biến môi trường. ý tưởng gọn gàng tầng 2
Tôi thích sử dụng ConfigParser. Bạn sẽ tạo một tệp cấu hình và lưu trữ nó ở một nơi khác mà bạn có thể chỉnh sửa dễ dàng/khó khăn như bạn muốn (như thư mục vv). nó sẽ giống như
và sau đó, trên tập lệnh python thực tế của bạn, bạn sẽ nhập dữ liệu đó như thế này
và sau đó biến của bạn vượt qua bây giờ có mật khẩu. Đẹp và sạch sẽ Tầng 2
Điều này thật tuyệt vì bạn có thể tiếp tục gỡ lỗi. txt trong kiểm soát nguồn - và thay thế nó bằng tệp của riêng bạn
Chỉ cần lưu ý rằng vượt qua là một từ khóa ngôn ngữ và ngay cả khi có thể, bạn sẽ không muốn bỏ qua các từ khóa, như một thói quen lập trình tầng 34 năm trước Đối với một giải pháp rất đơn giản, hãy tạo một tệp Python, chẳng hạn như thông tin đăng nhập. py, trong cùng thư mục với tập lệnh của bạn. Viết từ điển với mật khẩu của bạn, như thế này
và như thế. Sau đó, trong tập tin kịch bản của bạn
Đảm bảo rằng bạn giữ tệp thông tin đăng nhập của mình không bị sửa đổi. Gitignore nếu cần tầng 4
những gì mọi người Django thường làm là có một tập lệnh Python (thường được gọi là local_settings. py) được loại trừ rõ ràng khỏi kho lưu trữ và nó được nhập vào tệp cài đặt thực được theo dõi tầng 4
Vâng, tôi sử dụng một cấu hình. ini chứa cả thông tin đăng nhập và cài đặt thông thường. Sau đó, tôi thêm cấu hình đó. ini thành git bỏ qua và một sample_config trống. ini không có giá trị cho repo tầng 5
Nếu nó chỉ là một kịch bản để sử dụng cá nhân, tôi thực sự thích keyring. Giao diện với Keychain. ứng dụng trên máy Mac của tôi, có giao diện rất thân thiện với người dùng và hãy để tôi sử dụng một |
Bài Viết Liên Quan
Liên kết Google sheet với Google Calendar
Nhớ hồi còn đi học, chả phải để tâm, lo lắng đến điều gì, chỉ có đến dịp Tết là mình ngồi đếm lịch âm để biết số ngày nghỉ còn lại. Mỗi ...
Kiểu động trong Python là gì
Ngôn ngữ lập trình có thể được phân loại thành hai loại Dynamic typing và static typing. Python là một ngôn ngữ được gõ động. Điều này có nghĩa là trình ...
Tuyển bóng đá K-State 2023
MANHATTAN - Những ngày và giờ trước ngày ký hợp đồng bóng đá ở trường đại học có thể là những ngày khó khăn đối với huấn luyện viên cũng như điều ...
Làm thế nào để bạn tìm thấy lỗi tiêu chuẩn của một danh sách trong python?
Bài viết này hướng dẫn bạn cách tính độ lệch chuẩn của một danh sách các giá trị số đã cho trong PythonĐịnh nghĩa và xây dựng vấn đềĐộ lệch chuẩn ...
Không gian tên hvac Python
Đã thử nghiệm với bản phát hành mới nhất, HEAD ref và 3 phiên bản nhỏ trước đó (tính từ bản phát hành mới nhất) của Vault. Hỗ trợ chính thức hiện ...
OPPO A7 giá bao nhiêu
Đặc điểm sản phẩmModel:A7 64GBMàu sắc:XanhNhà sản xuất:OPPOXuất xứ:Trung QuốcThời gian bảo hành:12 ThángĐịa điểm bảo hành:Nguyễn KimRAM:4 GBBộ nhớ ...
CakePHP có phải là một khung không?
CakePHP là một nền tảng mã nguồn mở rất nhanh được sử dụng để phát triển PHP Framework. Nó là một mô hình dựa trên MVC với mục tiêu là tạo ứng dụng ...
Python lấy kích thước của chuỗi
Xây dựng vấn đề. Đưa ra một chuỗi my_string. Tìm số ký tự của chuỗi. Ví dụ: chuỗi what is my length? phải mang lại số nguyên 18 vì nó có 18 ký tựDưới ...
Đặt hình ảnh nổi bật WordPress
Một hình ảnh nổi bật của WordPress có chức năng như một tấm thiệp chào mừng trực quan, một gợi ý để khách truy cập vào và tận hưởng những gì đằng ...
Cách xem World Juniors 2023 tại Mỹ
Hoa Kỳ và Canada sẽ đối đầu vào Thứ Tư, ngày 4 tháng 1 năm 2023, trong trận bán kết IIHF World JuniorTrò chơi sẽ diễn ra lúc 6. 30 giờ. m. EST và sẽ được phát ...
Bootstrap PHP MySQL
Trong bài đăng này, Chúng ta sẽ xem cách phát triển Ứng dụng CRUD (Tạo, Đọc, Cập nhật, Xóa) bằng Bootstrap 5, PHP - OOP, PDO - MySQL và Tìm nạp API của ES6 ...
Cá bao nhiêu tiền 1kg
Tìm hiểu về giá cá bớp biển bao nhiêu tiền 1kg? Cá bớp biển và cá bớp nuôi giá cả có gì khác nhau không? Cá bớp tươi và cá bớp đông lạnh chất lượng ...
Cách hiển thị tệp html trong studio android
Bạn có thể cung cấp nội dung dựa trên web—chẳng hạn như HTML, JavaScript và CSS—để ứng dụng của bạn sử dụng mà bạn biên dịch tĩnh vào ứng dụng thay ...
Tệp đã đọc () trong Python là gì?
Nếu chương trình và tệp nằm trong cùng một thư mục, bạn chỉ cần chỉ định tên tệp của tệp. Nếu không, bạn cần bao gồm đường dẫn đến tệp cũng như ...
Hướng dẫn văn bản python
GHI CHÚ. Trang web này không được dùng nữa. Trang web sẽ ngừng hoạt động sau ngày 31 tháng 1 năm 2023 và lưu lượng truy cập sẽ chuyển hướng đến trang web mới ...
Làm cách nào để bao gồm nhiều tệp PHP?
Không có sự khác biệt lớn giữa include và include_once. Sự khác biệt chính là bao gồm sẽ thêm tệp được chỉ định mỗi khi nó được gọi. Tuy nhiên, ...
Đăng ký SLCC mùa xuân 2023
Ngày 17/10 mở đăng ký cho tân sinh viên. Sinh viên hiện tại cũng có thể tiếp tục đăng ký lớp học tại thời điểm này. Để biết thêm thông tin, hãy liên hệ ...
Mảng từ phương thức trong JavaScript là gì?
Trong JavaScript, mảng là một cấu trúc dữ liệu chứa danh sách các phần tử lưu trữ nhiều giá trị trong một biến duy nhất. Sức mạnh của mảng JavaScript nằm ...
Làm cách nào để sử dụng FFmpeg trong quy trình con Python?
Tạo một thể hiện của lớp from better_ffmpeg_progress import FfmpegProcess # Pass a list of FFmpeg arguments, like you would if using subprocess.run() process = FfmpegProcess([ffmpeg, ...