인프런 커뮤니티 질문&답변

강동현님의 프로필 이미지
강동현

작성한 질문수

가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]

블로그 구독 기능 구현하기

mysql db연결이 왜 안될까요?

작성

·

203

0

안녕하세요, 질 좋은강의를 해주셔서 정말 감사하고 많이배우고있습니다. 바쁘실테니 요점만 간단히 하겠습니다.

문제 : 이메일등록하려고 시도할때 DB연결이 안되있어서 @staticmethod인 find부터 걸림

체크해본것 :

mysql 데이터베이스, 테이블, 칼럼 확인 O

파라미터(user_email, blog_id) 잘넘어가는지 확인 O

import pymysql

MYSQL_CONN = pymysql.connect(
host="localhost",
port=3306,
user='root',
passwd='1234',
db='blog_db',
charset='utf8'
)


def conn_mysqldb():

try:
if not MYSQL_CONN.open:
MYSQL_CONN.ping(
reconnect=True)
return MYSQL_CONN
except Exception as e:
print(e)


Traceback (most recent call last): File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 2464, in __call__ return self.wsgi_app(environ, start_response) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise raise value File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask_cors/extension.py", line 165, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise raise value File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "/Users/joeykang/.conda/envs/Portfolio/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/Users/joeykang/PycharmProjects/Portfolio/portfolio_view/blog.py", line 23, in set_email user = User.create(user_email, blog_id) File "/Users/joeykang/PycharmProjects/Portfolio/portfolio_control/user_mgmt.py", line 50, in create user = User.find(user_email) File "/Users/joeykang/PycharmProjects/Portfolio/portfolio_control/user_mgmt.py", line 34, in find db_cursor = mysql_db.cursor() AttributeError: 'function' object has no attribute 'cursor'

답변 2

0

강동현님의 프로필 이미지
강동현
질문자

답변 감사합니다 다시한번 확인해볼게요!

0

안녕하세요. 

관련 코드만을 봐서는 어떤 문제인지 이해하기 어려워서요. 단순히 연결하기만 하는 코드인데... 아마 다른 코드에서 에러가 난 것 같은데요. 이럴 경우는 코드가 서로 다양하게 연결되어 잇기 때문에, 반드시 새로 제가 드린 코드를 그대로 다운로드 받으셔서, 테스트를 해보신 후, 자신의 코드와 비교해보시는 것이 가장 빠를 것 같습니다. 그렇게 한번 해보시는 것은 어떨까요?

마지막으로 다음 '궁금한 점에 대한 답변 찾기 꿀팁' 글도 읽어보시면, 훨씬 도움이 되실 것 같습니다.
궁금한 점에 대한 답변 찾기 꿀팁!
궁금한 부분이 있거나, 문제가 있을 때, 항상 google.co.kr 에서 질문에 대해 검색해보세요! (아직까지는 네이버?로 검색하는 개발자는 없습니다.)
에러 메시지는 맨 마지막 라인을 복사해서 구글에서 검색해보시고, 질문에 대해서는 질문 관련 키워드들을 조합해서 구글에서 검색해보세요. 개발자들은 모두 이를 통해, 답변을 얻습니다. 한발짝 나아 가시려면, 반드시 이런 연습이 꼭 필요합니다.
저는 한가지 확인이 필요한 사안을 위해, 20 ~ 30분 검색과 10개 이상의 블로그를 찾아보는 일을 하루에도 한두번씩 한답니다.
검색이 처음이신 분들은 개발자를 위한 정보 검색 팁을 참고하시면 훨씬 성장하시는데 도움이 되실 것입니다.
두번째, 각 강의마다, 다른 분들께서도 이미 질문하신 사항들이 있습니다.
해당 부분을 확인해보시면, 답변을 기다릴 필요 없어서, 훨씬 도움이 되실 것 같습니다.
세번째, 각자 작성하신 코드 에러의 경우는
제가 제공해드린 코드자료를 수정하지 않고, 단계별로 그대로 실행해보신 후, 해당 코드와 자신의 코드가 어떤 부분이 다른지를 단계별로 확인해보시면, 훨씬 좋습니다.
키보드로 그대로 따라 치시기 보다, 제공해드린 코드를 그대로 복사해서 붙여넣고 테스트를 해보시면 좋고, 여기에서 자신의 코드와 다른 부분을 최대한 작게 쪼개서 조금씩 넣어보시면서, 테스트를 해보시면 가장 좋습니다. 각자 코드를 작성하신다면, 이렇게 작업해보시면 훨씬 도움이 되실꺼예요.
마지막으로, 질문하실 경우에는 어느 강의 영상의 어느 구간(가능하다면 몇분 몇초)에 대해 질문하시는 것인지 꼭 명기해주시면 좋습니다.
그래야 맥락이 이해가 가서, 보다 좋은 답변할 수 있습니다. 만약 구간 명기가 가능하지 않다면, 강의 영상 외적인 문의인지에 대해 확인 부탁드립니다. 본 질문 답변란은 강의 영상 이해를 돕기 위한 자리입니다. 강의 영상 외적인 부분은 양해를 부탁드립니다. 특히 극히 일부 개인별 코드 리뷰나 기능 구현등 무리가 되는 요청을 하시는 분들도 계셨는데, 좋은 강의가 선순환될 수 있도록 부탁드립니다.
잔재미코딩 Dave Lee 드림
강동현님의 프로필 이미지
강동현

작성한 질문수

질문하기