用python导入我的数据库连接

Bra*_*don 5 python mysql

是否可以使用我的数据库凭据创建一个py文件以连接到MySQL数据库。

con = [ [ip='0.0.0.0'],[username = 'root'],
[password='pswd'],[database='test']]
Run Code Online (Sandbox Code Playgroud)

然后在另一个文件上使用此文件。

喜欢

import dbcon.py*

dbcon.sort

con = mdb.connect(info from py file goes here.)
Run Code Online (Sandbox Code Playgroud)

rsm*_*rsm 13

可以,但是混合代码和数据(任何类型的配置,HTML等)不是一个好主意,至少出于以下两个原因:

  • 设计最终会导致所谓的高耦合。存在很多依赖关系,难以遵循且您的应用越来越难以修改的情况。
  • 安全性-您的凭据迟早会出现在某些代码备份存档或存储库中。配置文件可以额外加密,而py文件不是真的。如果是网络应用程序,则限制对单个配置文件的访问比将对所有可能包含敏感数据的py文件的访问更容易。

您仍然可以创建此单独的,易于使用的连接处理功能。但是将您的连接凭据移到单独的配置文件中。

config.ini:

[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
Run Code Online (Sandbox Code Playgroud)

您可以在连接py文件中读取配置,也可以使其更具全局性(例如,单例?)。如果要读取连接文件中的配置:

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'])
Run Code Online (Sandbox Code Playgroud)

用法示例:

import storage

conn = storage.connect()
Run Code Online (Sandbox Code Playgroud)