Mysql
 sql >> база данни >  >> RDS >> Mysql

импортирайте връзката ми с базата данни с python

Възможно е, но не е добра идея да смесвате код и данни (от всякакъв вид - конфигурация, HTML и т.н.) поради поне две причини:

  • Дизайн – в крайна сметка получавате така нареченото високо свързване . Ситуация, в която има много зависимости, които трудно се следват и приложението ви е все по-трудно за модифициране.
  • Сигурност – вашите идентификационни данни рано или късно се озовават в някакъв архив или хранилище за архивиране на код. Конфигурационният файл може да бъде допълнително криптиран, py файлът не всъщност. Ако е уеб приложение, е по-лесно да ограничите достъпа до един конфигурационен файл, отколкото до всички py файлове, които могат да имат чувствителни данни.

Все още можете да създадете тази отделна, лесна за използване функция за управление на връзката. Но преместете идентификационните си данни за връзка в отделен конфигурационен файл.

config.ini:

[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'

Можете да прочетете конфигурацията във вашия py файл на връзката или да го направите по-глобален (т.е. singleton?). Ако искате да прочетете конфигурацията във файла за връзка:

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'])

Пример за употреба:

import storage

conn = storage.connect()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Справяне с вложени набори в mysql?

  2. Как да запазите подписа в MySQL

  3. Изисква се пролетно зареждане CLIENT_PLUGIN_AUTH

  4. Как да променя mysql на mysqli?

  5. Попълване на DataTable в C# с помощта на MySQL