오도원입니다.

건강과 행복을 위하여

반응형

flask 11

Flask 17. CRUD

Read => GET Update => PUT Delete => DELETE @api.route('/users/', methods=['GET', 'PUT', 'DELETE']) def user_detail(uid): if request.method == 'GET': # GET은 조회(read) user = Fcuser.query.filter(Fcuser.id == uid).first() # first로 하나만 뽑아낸다. return jsonify(user.serialize) # user는 객체이므로 serialize하게 만들어야한다. elif request.method == 'DELETE' : # DELETE는 삭제(delete) Fcuser.query.delete(Fcuser.id == uid) ret..

Flask 16. 회원생성 API 만들기

사용자의 요청에 대해서 html코드를 응답하는 uri와 API로 리소스만 제공하는 uri가 있다. 이 두개를 구분해서 개발할 것이다. flask에서 제공하는 blueprint를 이용할 것이다. 1. __init__.py from flask import Blueprint api = Blueprint('api', __name__) from . import user api라는 이름의 블루프린터를 만들고 이 api를 통해서 user.py안에서 api코드를 만들 것이다. 2. user.py # 사용자 API from flask import jsonify from . import api # . 은 현재위치를 말한다 from flask import requuest from models import Fcuser fro..

Flask 15. HTTP와 RESTful API

프론트엔드와 백엔드가 분리가 되었다. 그러나 분리가 되면 서로 데이터를 주고받기 위한 프로토콜이 있어야 한다. 이 방법이 HTTP를 사용하는 RESTful API이다. https://docs.microsoft.com/ko-kr/azure/architecture/best-practices/api-design API 디자인 지침 - Best practices for cloud applications 잘 디자인된 Web API를 만드는 방법에 관한 지침입니다. docs.microsoft.com

Flask 13. pythonanywhere에 배포하기

가상환경을 제외하고 압축한다. 가상환경을 새로 구성한 환경안에서 만들어야한다. 1. pythonanywhere에 압축파일 업로드 https://www.pythonanywhere.com/ Login: PythonAnywhere It's always a pleasure to hear from you! Ask us a question, or tell us what you love or hate about PythonAnywhere. We'll get back to you over email ASAP. Sorry, there was an error connecting to the server. Please try again in a few moments... www.pythonanywhere.com python..

Development/Flask 2020.03.11

Flask 11. 로그인 페이지 만들기

먼저 세션과 쿠키의 개념을 알아야한다. 쿠키란? 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 데이터파일이다. 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있다. 세션이란? 세션은 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리한다. 서버에서는 클라이언트를 구분하기 위해 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지한다. 이로써, 로그인을 구현하기 위해서는 세션이 필요하다. flask에 session 모듈을 import한다. 1. View - login.html 클라이언트에서 요청했을 때 보여줘야 하는 페이지를 reg..

Flask 10. static 파일 관리하기

플라스크에서는 static 파일을 관리하는 것이 굉장히 단순하다. 그냥 프로젝트 안에 static 폴더를 만들면된다. 그러면 이 폴더가 기본적으로 static url 주소의 하위로 지정이 되므로 파일을 해당 폴더에 둬서 갖다쓰면 된다. label { font-size : 20px; font-weight : 700; } 그리고 이것을 register.html 코드에 적용한다. ... 이런식으로 추가하면 된다. 이제 적용이 됐는지 확인해보자. 확실히 페이지가 변경된 것을 알 수 있다. style.css파일이 적용이 되었다. 또한 플라스크의 url_for()함수에 의해서 해당 파일의 url도 알아서 적용되었다. 플라스크에서 static 파일을 관리하는 것은 매우 간단하다.

Flask 09. Flask-WTF

플라스크가 마이크로 프레임워크이므로 기능들이 부족하다. 그래서 form관리를 할 때 쓰는 패키지가 WTF이다. 파이썬에서 form을 만들고 template에 전달에서 form을 표현할 것이다. 이렇게 하면 csrf보호기법, validation을 편하게 할 수 있다. CSRF는 사이트 간 요청 위조를 방지하기 위해서 form안에 암호화된 해쉬키를 넣어놓고 직접 만든 사이트안에서 일어나는 요청인지 아닌지 판별하는 패키지이다. CSRF 해쉬값을 자동으로 전달해서 검증해준다. 1. form.py form을 관리하는 파일을 따로 만든다. from flask_wtf import FlaskForm from wtforms import StringField from wtforms import PasswordField f..

Flask 08. 회원관리 - Controller

Model과 View가 만들어졌으므로 이제 Controller를 구현해서 회원관리를 완성해보자. @app.route('/register') def register(): return render_template('register.html') 이 코드에 비즈니스 로직을 완성해야한다. 이제 회원가입의 두가지 경우가있다. GET요청과 POST요청이 있다. GET은 기존에 만들었던 페이지를 보여주는 것이고, POST요청은 등록을 눌렀을 때 데이터를 가지고 오는 것이다. 따라서, GET인 경우와 POST인 경우를 나눠서 코드를 작성해야한다. 우선 요청정보를 확인하기 위해서 flask에 request모듈을 import한다. request 객체를 통해 요청정보를 관리할 수 있다. ... from flask import..

Flask 07. 회원관리 - View (bootstrap)

부트스트랩을 이용해서 회원가입 페이지 뷰를 만들어보자. https://getbootstrap.com/docs/4.4/getting-started/introduction/ Introduction Get started with Bootstrap, the world’s most popular framework for building responsive, mobile-first sites, with BootstrapCDN and a template starter page. getbootstrap.com 해당 부트스트랩 사이트에서 css, js 링크를 가져온다. 1. register.html 회원가입 아이디 사용자 이름 비밀번호 비밀번호 확인 등록 2. app.py app.py에 더미코드를 추가해서 제대로 만들어..

반응형