👩‍💻 Develope/Python

[Pymysql] 파라미터 전달

heywantodo 2023. 7. 16. 14:19
728x90
반응형

[Pymysql] 파라미터 전달

사용자의 입력값을 받아서 select 절이나 where 절에 사용하고 싶을 때, 

pymysql에선 %s를 이용하여 파라미터를 전달한다.

 

나같은 경우엔 로그인 정보가 맞는지 대조하기위해 사용

플라스크에서 request.form 이용해 클라이언트의 입력값를 서버로 받아온다. 

if request.method == 'POST':
  username = request.form['id']
  password = request.form['pwd']

그 후 db를 연결 한후 cursor로 값을 조회

cursor.execute에서 query와 변수를 넣는다 

with db.cursor() as cursor:
	sql = """
	SELECT idx, userid, userpwd, usermail
	FROM member
	WHERE userid = %s
	"""
	cursor.execute(sql, username)
	rows = cursor.fetchall()
 finally:
 	db.close()

만약 파라미터가 여러개라면, 아래와 같이 사용할 수 있다.

idx = request.form['idx']
password = request.form['pwd']
email = request.form['email']

values = [
	password,
	email,
	idx
]

변수값들을 list로 묶어서 excute값에 추가한다.

try:
	sql = """
	UPDATE member
	SET userpwd = %s, usermail = %s
	WHERE idx = %s
	"""
	cursor.execute(sql, values)
	db.commit()
    
	session.clear()
	redirect('login')
	flash('재로그인이 필요합니다.')
finally:
	cursor.close()
	db.close()

 

728x90
반응형