生產環境的資料庫基於安全的原因是無法直連訪問的,但是有時本地測試的時候又需要訪問生產環境的庫,這時候就需要登入跳板機來中轉。
目前登入跳板機有兩種:
使用paramiko
使用sshtunnel.
以下以sshtunnel為例實現:
import osimport pymysql
from sshtunnel import sshtunnelforwarder
key_file = os.path.join(os.path.dirname(__file__), "../id_rsa.pem")
tunnel = sshtunnelforwarder(("192.168.1.2", 22), #跳板機的位址ssh_username="guest",
ssh_password="******xx", #跳板機訪問密碼,和key二選一
ssh_pkey=key_file,
remote_bind_address=("192.168.1.10", 3306)) #目標資料庫位址&埠
tunnel.start()
conn = pymysql.connect(host='127.0.0.1',
port=tunnel.local_bind_port, #預設
user="user",
password="pas123",
database="target_db")
cursor = conn.cursor()當然也可以使用with的方式啟動sshtunnelforwarder, 但是實際測試中,會導致程序無法正常結束(可能是那沒配置對吧),暫時忽略。cursor.execute("select * from table")
data = cursor.fetchall()
cursor.close()
tunnel.stop()
python 3次登入鎖定
2017 06 17 需求說明 1.輸入使用者名稱和密碼 2.對密碼和使用者名稱進行驗證,驗證通過則顯示歡迎資訊 3.密碼輸錯三次後鎖定使用者 思路 1.account.txt是存放使用者id和密碼的檔案 2.lock.txt是存放被鎖定使用者id的檔案,預設為空 3.判斷使用者是否在黑名單lock...
python3基礎 訪問限制
前提 類中的屬性不想被外界修改,則可以將屬性變成私有變數,前面用 標記 class student docstring for student def init self,name,score self.name name name為該類的私有變數,不可以被外界直接呼叫,可以借助方法獲得 self....
python3 模板庫 Python模板庫Mako
中文語法文件 快速總結 特點 簡單快速,對模組化程式設計支援到位,能直接呼叫python 關於速度的對比 mako 1.10 ms myghty 4.52 ms cheetah 1.10 msgenshi 11.46 ms django 2.74 mskid 14.54 ms 本質及哲學 mako的...