1
  • db:mysql
  • lang:python
  • フレームワーク:
  • django
  • オペレーティングシステム:Linux(ubuntu)

こんにちは、

データベースに保存されているスクリプトのコンテンツに対してPythonを実行する方法はありますか?たとえば、ファイルの内容はデータベース列のテキストに保存されます。唯一の解決策は、一時ファイルを作成し、データベースからファイルにコンテンツをダンプしてから、それに対してpython osコマンドを実行することでしょうか?実行されたスクリプトの内容は、引用符などをエスケープするように保存する必要があると思います。

私は自分の目標を達成するためにどのデータベースを使用するかについての提案を受け入れています。MySQLは、ファイルコンテンツを保存する前に追加のラッパーを必要とし、場合によっては他のラッパーを適用してqoutes / datetime/etcに応答します。

追加情報が必要な場合はアドバイスしてください。ただし、基本的には、Pythonスクリプトのコンテンツをデータベースに保存し、取得して、Pythonインタープリターに対して実行することを検討しています。

アドバイスをよろしくお願いします。

4

2 に答える 2

2

compile組み込み関数を使用できます。

s = """def f(x):
    return x + x

print(f(22))
"""

code = compile(s, "string", "exec")

exec(code)
# OUT: 44

データ構造を保存して、それを事前定義されたコードで使用できないかどうかは疑問ですが。この方法で任意のコードを実行することは危険であり、セキュリティ リスクになる可能性があります。

于 2012-11-16T23:21:02.257 に答える
0

これは、ここのSO投稿に非常に似ているようです:

Google App Engine でデータベースから Python アプリケーション コードを動的にロードする

ここに実行に関する情報があります

http://docs.python.org/release/2.5.2/ref/exec.html

Python+MySQL の Python Wiki ページ

http://wiki.python.org/moin/MySQL

于 2012-11-16T23:17:45.887 に答える