본문 바로가기

TIL/Python

(16)
[Flask] 여러 사용자의 가입과 로그인을 관리해보자 0. 사용자.db을 만든다. 사용자로 부터 입력받은 데이터를 이용해 사용자db을 만든다. class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(100), unique=True) password = db.Column(db.String(100)) name = db.Column(db.String(1000)) 이메일 비밀번호 이름을 정보를 받는다. UserMixin 은 flask_login에서 가져온 함수 이다. @app.route('/register', methods=["GET", "POST"]) def register(): if request.method == "POST":..
[Python][Flask]form안에 에디터 CKEditor CKEditor 란 WSGI을 지원하고 편집기능을 지원하는 에디터의 오픈소스 중 하나로 pip 설치 후 사용할 수 있다. https://flask-ckeditor.readthedocs.io/en/latest/index.html Flask-CKEditor — Flask-CKEditor 0.2.0 documentation flask-ckeditor.readthedocs.io 설치 후 html안에 원하는 곳에 불러온다. {{ ckeditor.load() }} 이러면 필요한 소스들을 CND을 이용해서 사용할 수 있다. 대게 Flask_WTF/WTForms 와 같이 사용하곤 하는데 예를 들어 메인 서버에 아래와 같이 불러오면 from flask_wtf import FlaskForm from flask_ckedit..
[Python]Decorator @을 이용한 함수내 함수 함수를 다른 함수내 인자로 사용하는 여러 방법이 있다. 1. 일급객체 취급 def add(n1,n2) : return n1 + n2 def subtract(n1,n2) : return n1 - n2 def multiply(n1,n2) : return n1 * n2 def devided(n1,n2) : return n1 / n2 함수를 일급 객체로 취급하여 함수 안에 함수를 쓸 수 있다. def calc(calc_func, n1, n2) : return calc_fuc(n1, n2) calc(multiply, 3, 6) // return 18 2. 중첩함수 def out_func() : print("Hello") def nested_func(): print("the world!") out_funct() 안..
[SQAlchemy][Flask-WTForms] 데이터베이스 이용하는 웹페이지 만들기 - 좋아하는 작품의 여러가지 정보를 리스트로 나타내기 홈페이지 최종적으로 위처럼 작동하는 웹페이지를 만들 것이다. 사용할 라이브러리 - 서버 Flask / / Flask_WTForms / request - 웹 Bootstrap - 데이터베이스 SQLAlchemy 사용한 API https://api.artic.edu/docs/#quick-start Documentation | Art Institute of Chicago API Introduction The Art Institute of Chicago 's API provides JSON-formatted data as a REST-style service that allows developers to explore and integrate the museum’s public data into their pr..
[Flask][Flask-WTF]간단한 사용 - 로그인 양식 Flask-WTF flask의 확장모듈로 HTML입력양식(input, label, submit, etc) 보다 유효성검증이 쉽고 코드의 길이도 짧아지고 CSRF보호기능을 가지고 있다. 1. requirements.txt 을 만들기 터미널에서 pip freeze > requirements.txt 으로 설치하고 나면 패캐지의 현재 환경과 버전에 대한 간단한 리스트가 담긴 requirements.txt파일이 생성 되는데 pip install -r requirements.txt 으로 위 파일과 같은 패캐지들이 설치가 된다. 이때 가상환경virtualenv(venv)이 활성화 되어 있어야한다. 깃허브 같은 곳에서 복제한 마스터 혹은 메인 레포 안에 가상환경을 설정하고 활성화시킨 후 위와 같은 코드를 실행하여 필요..
[Python][Flask] 플라스크 이용하기 - 4.Jinja 이용하기 진자는 이미 플라스크 다운받을 때 함께 다운되는 파이썬 전용 펨플릿 언어이다. html은 안에 있는 글자를 문자열 그대로 렌더링하는 반면 진자는 html안에서 {{}}을 이용한다. {{변수나 사칙연산 같은 것들이 들어가면 계산되어서 렌더링 된다.}} Hello~!☺️ This is TaeYu's Website and i'm learning about flask! {{3*7}} 3*7 1. 변수 와 키워드 인자 이용하기 예를 들어 랜덤정수를 뽑고 싶다면 flask파이썬 파일에 가서 랜덤모듈을 호출 후 사용하는 함수 안에 변수1로 불러오고 html안에 사용할 변수content1를 render_tempalte('파일이름.html',content1=변수1)와 같이 함수안에 인자로 넣어준 후 from flask ..
[Python][Flask] 플라스크 이용하기 - 3.렌더링 & 꾸미기 1. URL Building : the url_for() function 웹사이트 안에 url 집어 넣기 일일이 코드를 작성하는 것보다 주소1 url_for() 함수를 이용하면 좋은 이유 1) 더 알기 쉽다. 2) 수정하기 쉽다. 3) 특정 문자를 (예를 들면 대문자 소문자 변환과 같은 것) 수정하기 쉽다. 4) 절대경로를 생성하며 불확실한 경로를 피한다. 5) 만일 앱이 url root밖에서 생성 되면 도와준다.(?) 이전에 사용했던 코드를 연이어 사용해보자 with app.test_request_context(): print(url_for('show_post',post_id=20220516,number=34)) print(url_for('hello_world2',name='tae')) /post/20..
[Python][Flask] 플라스크가 뭘까? -2. 디버깅 2. 실행시켰는데 서버가 생기지 않을 때 1) 플라스크의 버전을 확인해보자 2) 파일이름을 잘 입력했는 지 확인하자 3. 디버그 모드 실행 중에도 만일 코드가 변하면 자동적으로 리업로드하는데 이때 발생한는 디버그를 웹에 나타내준다. 위와 같이 실행중에 코드를 변경해보면 @app.route('/name') def hello_world2(): return "Hellow, WorldWhat is your first name?" 처럼 변경되어서 나오는데 만일 오류가 생긴다면? 우선 변수설정을 해보자 @app.route('/') def hello_world2(name): return f"Hellow, WorldWhat is your favorite {name}?" 사용하게될 변수를 안에 넣어준다. 여기서 오류를 ..