URL エンコーディングを使用してデータベース接続文字列内の特殊文字を処理する
SQLalchemy を使用した Python アプリケーションの開発では、接続文字列を使用してデータベース接続を確立することがよくあります。ただし、パスワード内の特殊文字は解析の問題を引き起こす可能性があります。適切な解析を可能にするために、接続文字列またはそのパスワード コンポーネントを変更できますか?
「p@ss」のような特殊文字を含むパスワードを検討してください。 「postgresql://user:p@ss@host/database」のような接続文字列に組み込まれると、文字「@」と「:」が区切り文字として解釈され、正常な接続が妨げられます。
1 つの回避策これは、engine.URL.create() メソッドを使用して資格情報を直接渡すことです。ただし、可能であれば、接続文字列を手動でエンコードすることをお勧めします。
解決策は、文字列のパスワード部分を URL エンコードすることです。
from urllib.parse import quote_plus from sqlalchemy.engine import create_engine engine = create_engine("postgres://user:%s@host/database" % quote_plus("p@ss"))
この方法は、SQLAlchemy の URL 表現で採用されています。パスワードをエスケープするためのクラス。パスワードを URL エンコードすることで、特殊文字を処理し、接続文字列を適切に解析できるようになります。
以上がURL エンコーディングは SQLAlchemy 接続文字列の特殊文字の問題を解決できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。