Có thể, nhưng không nên trộn lẫn mã và dữ liệu (bất kỳ loại nào - cấu hình, HTML, v.v.), vì ít nhất hai lý do:
- Thiết kế - bạn kết thúc với cái gọi là khớp nối cao . Tình huống có rất nhiều yếu tố phụ thuộc, khó theo dõi và ứng dụng của bạn ngày càng khó sửa đổi.
- Bảo mật - thông tin đăng nhập của bạn sớm hay muộn sẽ kết thúc trong một số kho lưu trữ hoặc kho lưu trữ sao lưu mã. Tệp cấu hình có thể được mã hóa bổ sung, tệp py thì không. Nếu đó là một ứng dụng web, thì việc hạn chế quyền truy cập vào một tệp cấu hình đơn lẻ, sau đó là tất cả các tệp py có thể có dữ liệu nhạy cảm sẽ dễ dàng hơn.
Bạn vẫn có thể tạo chức năng xử lý kết nối riêng biệt, dễ sử dụng này. Nhưng hãy di chuyển thông tin đăng nhập kết nối của bạn sang tệp cấu hình riêng biệt.
config.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Bạn có thể đọc cấu hình trong tệp py kết nối của mình hoặc làm cho nó toàn cầu hơn (tức là singleton?). Nếu bạn muốn đọc cấu hình trong tệp kết nối:
storage.py:
import configparser
import MySQLdb.cursors
config = configparser.ConfigParser()
config.read('config.ini')
def connect():
return MySQLdb.connect(host = config['mysqlDB']['host'],
user = config['mysqlDB']['user'],
passwd = config['mysqlDB']['pass'],
db = config['mysqlDB']['db'])
Ví dụ sử dụng:
import storage
conn = storage.connect()