のようにそれは可能ですが、それは、コードとデータ(任意の種類 - 設定、HTMLなど)を混合するためには良い考えではありません、少なくとも2つの理由のために、:
- デザイン - あなたはという高いカップリングと呼ばれることになります。多くの依存関係があり、追跡が難しく、アプリの変更が困難になる状況。
- セキュリティ - あなたの資格情報は、いくつかのコードのバックアップアーカイブまたはリポジトリで間もなく終了します。設定ファイルは、実際にはpyファイルではなく、さらに暗号化することができます。それがWebアプリケーションの場合、単一の設定ファイルへのアクセスを制限し、機密データを持つことができるすべてのpyファイルへのアクセスを制限する方が簡単です。
このように使いやすく、使いやすい接続処理機能を作成できます。ただし、接続資格情報を別の構成ファイルに移動します。
のconfig.ini:
[mysqlDB]
host = '0.0.0.0'
db = 'test'
user = 'root'
pass = 'pswd'
あなたの接続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'])
使用例:
import storage
conn = storage.connect()
出典
2017-03-20 16:51:20
rsm
だけでなく、することができます。それがどのように役立つかを見ています。 1つのファイルに接続してインポートし、他の多くのファイルで使用することもできます。しかし、データとコードを混ぜるのは良い考えではありません。私たちはHTMLやJSをPythonコードに入れません。構成データを別のファイルに入れてください。 – rsm
なぜそれは安全上の懸念か悪い習慣であるのは良い考えではないのですか? – Brandon
別の種類のコードとデータを分離して保存するのはgootです。 1つの場所ですべてを混ぜることはタイトカップリングと呼ばれ、プログラミングの練習は悪いことです。多くの依存関係やハードコードされた設定などがランダムな場所で発生し、変更には大きな苦痛が伴います。それは安全ではありません、あなたの資格情報は、コードリポジトリに移動し、すべてのコードのバックアップなどに格納されているとはるかに簡単にいくつかの機密データを持つ多くのpyファイルに単一の設定ファイルへのアクセスを制限する。 – rsm