가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]대시보드
월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
flask 서비스 구성 관련
좋은 강의 통해 많은 지식 얻게 되어 진심으로 감사드립니다. 별도 웹서버가 돌아가는 공간에 flask를 구동하여 파이썬으로 가능한 여러가지 기능을(AI 예측결과 반환, 시뮬레이션DB 반환 등) 담당하도록 Back-End를 만들어보려 하는데요 만약 다른 속성의 서비스가 여러 개라면 ① 하나의 flask 서버에 각기 다른 라우팅 주소를 두고 Rest API 서비스를 하도록 방법과, ② 각 서비스를 전담하는 각각의 flask 서버를 개별 구동하는 방법 중 어떤 방식이 더 좋을까요? (접속 빈도나 부하가 크진 않지만 1번 방식의 경우 병행처리의 문제는 없는지 궁금합니다)
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
프론트엔드 질문드립니다
선생님 안녕하세요 질 좋은 강의 감사드립니다. flask로 백엔드 익혀보려고 신청하였습니다. 프론트엔드는 다양한 옵션이 있을텐데 vue로 강의를 하시는거 같더라구요. 파이썬 flask와 조합할때 react말고 vue로 조합하시는 이유가 있을까요? 장단점이 궁금합니다.
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
가장빠른 Vue 와 flask
7:49분 복습하던 중, 궁금한것이 생겨 질문드립니다. Vue로 이렇게 하는 것이다라는 것을 보여주셨지만 get방식에서는 params: { email: "test@test.com", } 라고 보내시고 post방식에서는 data: { email: "test@test.com", } 라고 보내셨습니다. 제가 post방식 vue에서 data를 params로 변경했더니 flask 서버에서 아예 데이터를 못받더라구요. 다시 params를 data로 변경했더니 정상작동했습니다. params와 data 라는 것이 methods 에 따른 고정인거 인가요?? 차이점이 궁금합니다. 항상 상세한 강의에 대해 감사드립니다. dave님 강의 듣고 개인적으로 로그인, 로그아웃, 회원가입, 탈퇴 기능을 간단히 웹페이지를 만들어서 구현할수 있어서 너무 좋았습니다. 지금은 이강의 복습 및 프론트 강의 보고 있구요. 이후 도커 학습하겠습니다. ^^
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
웹서버, 백앤드, 프론트앤드
선생님 안녕하세요! 프론트앤드와 백엔드 기본구성 강의에서 보여주시는 이미지와 관련해서 궁금한 점이 있어 질문드립니다! 웹서버 : aws와 같은 호스팅 업체 백엔드 : python-flask를 담당하는 팀원 프론트앤드 : js,swift,kotlin을 담당하는 팀원 이렇게 생각할 수 있는 건가요? 좋은 강의 감사드립니다!
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
3_python_decorator
안녕하세요. flask 깊은 이해를 위한 파이썬 중급 문법 : 데코레이터1 3:26 여기서 궁금한 것이 return wrapper는 누구한테 돌려주는 건가요 ? @datetime_decorator 를 아래와 같이 풀어 쓸 수 있는건가요? logger_login_david = datetime_decorator(logger_login_david) 그럼 logger_login_david 가 wrapper 를 리턴 받고 logger_login_david() 로 실행시켜주는건가요?
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
blog_ab.insert_one
강의 2분 30초 대에 pymongo 메서드에서 막히는데요 인자가 부족한건지 OpserationError가 자꾸 뜹니다.. 강의에서 제공한 파일로 돌려도 그러네요... 무엇이 잘못됬는지 모르겠습니다ㅠ
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
jsonify를 꼭 써야 하나요?
영상 8분 35초 부근 입니다. 영상을 보다가 return_data 는 이미 json 파일 형식인데 왜 jsonify를 또 해야할까 하는 생각이 들었습니다 @app.route('/login') def login(): username = request.args.get('user_name') passwd = request.args.get('pw') email = request.args.get('email_address') print(username, passwd, email) if username == 'dave': return_data = {'auth': 'success'} else: return_data = {'auth': 'failed'} return return_data 그래서 위와 같이 jsonify를 빼고 코드를 작성해도 아래와 같이 httpie 에서 정삭적으로 값이 출력됩니다. jsonify를 적용 안하면 나중에 문제가 생기는지 궁금합니다!!
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
vscode 실행실 터미널 오류
Vscode 로 예제파일을 실행중에 실행이 되지 않고 터미널에 오류가 발생되어 질문드립니다. 1.anaconda 재설치 후 path설정 체크 2.conda python 으로 prtier 변경 3.terminal defualt 변경 3가지 방법으로 시도 해보았으나 되지않아 스샷과 함꼐 남깁니다. 혹시 파이썬 설치경로와 예제파일 설치경로상의 문제가 있는건지 확인부탁드립니다.
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
혹시 was에 관한 추가 글같은거 추천해주실수 있나요?
웹서버와 was에 관한 정보를 좀더 찾아보니까, 거의다 자바 was가 나오면서, 웹컨테이너 어쩌구 하는 글들만 나오더라구요.. 그래서 또 찾아보니, 자바와 관련된 것처럼 나와서요. 그리고 어떤곳에서는 요즘은 웹서버와 was의 구분이 희미해지고있따(?)라는 이야기도 있다고 하던데 맞나요? 순수한 의미에서의 웹서버는 정적인것만 반환하지만, 요즘은 원래 웹서버로 나온것도 추가적인 라이브러리(?)등을 통해서 동적인것도 지원한다고 하는것같아서요.
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
a-z까지 같아야 한다고 하셨는데
해당 강의에서는 3.7 아나콘다로 진행을 하던데 제가 현재 다운을 하려니 3.8밖에 없습니다.큰 업데이트 내용은 없어보여서 우선 저는 3.8로 진행하려는데 괜찮겠죠?
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
http://localhost:8080/blog/test_blog 실행오류
View 와 ABTest 기능 구현하기 3분 6초 내용입니다. 07_flask_ABTest_Practice_DB 폴더를 수정없이 ( 아랫부분만 수정하였습니다) MYSQL_CONN 에서 user 부분과 passwd 부분을 제아이디와 비번으로 바꾸었습니다. -------------------- 서버실행하고 나서 http://localhost:8080/blog/test_blog 해당 페이지를 접속을 하면 (port를 8081 도 해보고, 8082도 해보았습니다) 아래와 같은 오류가 납니다... TypeError TypeError: key: expected bytes or bytearray, but got 'NoneType' Traceback (most recent call last) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2464, in __call__ return self.wsgi_app(environ, start_response) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2450, in wsgi_app response = self.handle_exception(e) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1867, in handle_exception reraise(exc_type, exc_value, tb) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\_compat.py", line 39, in reraise raise value File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 2447, in wsgi_app response = self.full_dispatch_request() File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1952, in full_dispatch_request rv = self.handle_user_exception(e) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function return cors_after_request(app.make_response(f(*args, **kwargs))) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1821, in handle_user_exception reraise(exc_type, exc_value, tb) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\_compat.py", line 39, in reraise raise value File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1950, in full_dispatch_request rv = self.dispatch_request() File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 1936, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "C:\inflearn\00_projects\07_flask_ABTest_Practice_DB - 복사본\blog_view\blog.py", line 26, in test_blog return render_template('blog_A.html') File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\templating.py", line 136, in render_template ctx.app.update_template_context(context) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask\app.py", line 838, in update_template_context context.update(func()) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 379, in _user_context_processor return dict(current_user=_get_user()) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 346, in _get_user current_app.login_manager._load_user() File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\login_manager.py", line 329, in _load_user user = self._load_user_from_remember_cookie(cookie) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\login_manager.py", line 366, in _load_user_from_remember_cookie user_id = decode_cookie(cookie) File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 63, in decode_cookie if safe_str_cmp(_cookie_digest(payload, key=key), digest): File "C:\ProgramData\Anaconda3\Lib\site-packages\flask_login\utils.py", line 354, in _cookie_digest return hmac.new(key, payload.encode('utf-8'), sha512).hexdigest() File "C:\ProgramData\Anaconda3\Lib\hmac.py", line 153, in new return HMAC(key, msg, digestmod) File "C:\ProgramData\Anaconda3\Lib\hmac.py", line 48, in __init__ raise TypeError("key: expected bytes or bytearray, but got %r" % type(key).__name__) TypeError: key: expected bytes or bytearray, but got 'NoneType' The debugger caught an exception in your WSGI application. You can now look at the traceback which led to the error. To switch between the interactive traceback and the plaintext one, you can click on the "Traceback" headline. From the text traceback you can also create a paste of it. For code execution mouse-over the frame you want to debug and click on the console icon on the right side. You can execute arbitrary Python code in the stack frames and there are some extra helpers available for introspection: dump() shows all variables in the frame dump(obj) dumps all that's known about the object 선생님께서 올려주신 코드를 수정하지 않고 그대로 실행했는데도 오류가 나는 이유는 무엇일까요 google 에서 검색도 해보고 몇날 몇일을 고민하다 진도를 나갈수가 없고, 해결이 안되서 질문드립니다.
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
@statcimethod 를 사용하는이유가 있나요?
7분 40초 내요에 보면 User클래스에서 @staticmethod를 작성합니다. staticmethod 를 사용하는 이유가 무엇인지 궁금합니다! 항상 감합니다!
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
import 문의
실전 블로그 풀스택으로 구현하기: 데이터베이스 코드구현 강좌 6분 31초 내용입니다 from db_model.mysql import conn_mysqldb db_model 폴더는 user_mgmt.py 의 하위 카테고리에 있는게 아니라 다른 폴더에 있는데 그냥 db_model.mysql 이라고 코딩되어있어서 헥갈립니다. 다른 강좌에서는 하위폴더의, 폴더내의 소스파일명을 적어야한다고 말씀해주셨거든요 어느 폴더에 있던지 폴더명과 해당폴더의 소스파일명을 적은 다음 import 가 가능한가요?
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
flask routing 설정과 웹서버 실행
flask routing 설정과 웹서버 실행 강의 14분정도에서 위와 같은 코드를 돌리고 http://127.0.0.1:8080/hello 웹이 열리는 것까지 확인했씁니다. 하지만 제 로컬이 아닌 다른 컴퓨터 (혹은 모바일) 등으로 접속하면 없다고 뜨는데요 이거는 제 클라이언트에만 뜨는건가요? 서버에 연결?을 해줘야 다른 컴퓨터에서도 보이는건가요? 여기에 해당하는 기술이 어떤게 있는지 궁금합니다!
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
return 값이 data 일때와, jsonify(data) 일때 둘다 똑같이 json형태입니다
@app.route('/json_test') def hello_json(): data = {'name': 'ddd', 'family': 'Byun'} return jsonify(data) @app.route('/data_test') def data_test(): data = {'name': 'ddd', 'family': 'Byun'} return data 혹시나 해서 return값을 data로 넣어봤습니다 브라우저에서 확인을 해보니 아래와 같이 둘다 똑같은 형태로 값이 나옵니다. jsonify() 쓰는 이유는 무엇인지 궁금합니다.
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
User 객체??
선생님 안녕하세요. 제공해주신 blog_abtest.py파일을 실행하니 다음 사진처럼 실행이 안되네요 ㅠㅠ 수업 듣는 중 제 것이 안되길래, 선생님의 파일을 그대로 실행했는데도 이런 현상이 발생했습니다. 구글링으로도 답을 찾기 힘든데, 어떻게 해야 해결가능할까요?
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
127.0.0.1에서 연결을 거부했습니다.
127.0.0.1에서 연결을 거부했습니다. 라는 내용이 나옵니다. dave 아이디를 입력하는 과정에서요
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
Flask로 HTTPS 기반도 구현 가능한지요?
Flask를 통해 구성한 웹에서 통신해야하는 서버들이 HTTPS만 허용을 합니다. Flask의 HTTP 통신을 HTTPS를 기본으로 하게 구성이 가능한지요??
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
mysql db연결이 왜 안될까요?
안녕하세요, 질 좋은강의를 해주셔서 정말 감사하고 많이배우고있습니다. 바쁘실테니 요점만 간단히 하겠습니다. 문제 : 이메일등록하려고 시도할때 DB연결이 안되있어서 @staticmethod인 find부터 걸림 체크해본것 : mysql 데이터베이스, 테이블, 칼럼 확인 O 파라미터(user_email, blog_id) 잘넘어가는지 확인 O import pymysqlMYSQL_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'
- 미해결가장 빠른 풀스택: 파이썬 백엔드와 웹기술 부트캠프 (flask/플라스크와 백엔드 기본) [풀스택 Part1-1]
import pymysql부분 질문
안녕하세요, 강의 잘 듣고 있습니다.! import pymysql db_conn = pymysql.connect( host='localhost', port=3306, user='dave', passwd='funcoding', db='blog_db', charset='utf8') 코드는 어디에서 입력하면 되는걸까요? 윈도우 기준 mysql command Line Client 에서 입력하면 될까요? 그렇게 했을 경우 명령이 인식되지 않아 어떻게 해결해야할지 문의 드립니다.