SQL 접속시 접속정보 별도 보관해서 사용하기(python)
출처: https://redapply.tistory.com/entry/SQL-접속시-접속정보-별도-보관해서-사용하기python [Bigcat]
mySQL이나 마리아db 접속 할때 코드상에 보안상 비밀번호나 개인노출되는것이 부담스럽습니다.
로그인 접속 정보를 별도 파일에 보관해서 파이썬에서 불러오는 방법을 알아 보겠습니다.
1. sql 로그인 정보가 담긴 py 파일을 만듭니다.
ex ) c:\git/mysql_auth.py
2. mysql_auth.py 안에 mysql 접속 형식에 따라 정보 작성합니다.
ex ) 아래는 예시입니다. info라는 이름은 마음대로 정하셔도 됩니다.
lnfo = {
"db" : "study_data",
"host" : "192.168.0.1",
"user":"root",
"passwd":"12345",
"port" : 3307,
"charset":"utf8"
}
3. sql콘솔에서 데이타베이스를 만들어 놓는다.
ex ) MariaDB [(none)]> create database study_data;
이러면 준비가 완료 된것입니다.
코드 작성 폴더위치가 (db_login_test.py)
c:\git\test 에서 작성하고
내 개인 sql접속정보 파일이
c:\git 에 있다면 (mysql_auth.py)
다음은 예제 입니다.
import sys
sys.path.insert(0,'./git') # mysql 접속정보를 저장한 폴더경로
import mysql_auth # 나의 mysql 접속정보를 가져온다.
import MySQLdb
login = mysql_auth.info # 사용이 용이하게 변수로 저장
#참고로 login['port'] 이런식으로 입력하면
# 'port'의 값 즉 3307 이 출력되어 이 값을 우리가 사용
# SQL 접속 테스트
# 먼저 sql에서 db를 만드세요.
conn = MySQLdb.connect(
db=login['db'],
host=login['host'],
user=login['user'],
passwd=login['passwd'],
port=login['port'],
charset=login['charset'])
c = conn.cursor()
#테스트를 위해 테이블 자동 삭제
c.execute('DROP TABLE IF EXISTS test1')
c.execute('''
CREATE TABLE test1(
id MEDIUMINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
zipcode INT
)
''')
c.execute('INSERT INTO test1(name,zipcode)\
VALUES(%s,%s)',('서울',12345))
conn.commit()
# db 내용 정보 확인하기
c.execute('SELECT * FROM test1')
for row in c.fetchall():
print(row)
#sql접속 차단
conn.close()
이러면 작업 코드와 개인 정보 파일이 완전 분리되어
외부에 노출되는 위험이 줄어 듭니다.
출처: https://redapply.tistory.com/entry/SQL-접속시-접속정보-별도-보관해서-사용하기python [Bigcat]
'Flask' 카테고리의 다른 글
플라스크(서버)와 HTML 사이의 값 전달 (0) | 2021.06.13 |
---|---|
플라스크, 클라이언트 IP 확인 (0) | 2021.05.11 |
플라스크 사이트, 레퍼런스 (Flask Site & Guide) (0) | 2021.05.03 |
플라스크, 로그인/로그아웃 및 세션 처리 예제 코드 (0) | 2021.05.01 |
파이썬, Flask 로그인과 세션(session) 예제 동영상 (0) | 2021.04.12 |