일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- X.org
- preprocessing
- Class
- systemd
- Reference Type
- OOP
- selenium
- BFS
- Operator
- Polymolphism
- Entity Set
- Binary Search
- 백준
- Inheritance
- Entity
- 리눅스
- Mac
- 리눅스 마스터 1급
- dbms
- Physical Scheme
- spring
- 자바
- descriptive statistics
- Java
- External Scheme
- Unity
- python
- 셀레니움
- X윈도우
- literal
- Today
- Total
목록BackEnd/Flask (10)
Byeol Lo
서비스를 다 만들어 놓고 사용자에게 제공하지 못하면 아무 소용이 없다. 서버 컴퓨터에 자신이 만든 애플리케이션을 올려주어야 하며, 사전에 서버 컴퓨터를 구비해놔야 한다. Build and Install 우리의 프로젝트를 배포하기 위해 휠파일을 이제 만들어야 한다. wheel 파일을 쉽게 만들어줄 수 있는 build 모듈을 설치하여 dist 디렉터리에 wheel 파일을 자동으로 저장해 준다. 생성된 파일은 {project name}-{version}-{python tag} -{abi tag}-{platform tag} 의 포맷을 가진다. pip install build # build 모듈 설치 python -m build --wheel # wheel 파일 생성 이제 생성된 wheel 파일을 서버 컴퓨터에 ..
이제 프로젝트를 서버에 설치 가능하도록 하려면 외부 환경에 해당 프로젝트를 간편하게 설치할 수 있게 도움을 주는 휠 파일(wheel file)을 생성 해야한다. 이는 Flask와 같이 프로젝트 내에서 설치한 것과 같은 방식으로 배포를 단순화한다. 또한, 프로젝트를 설치하는 것은 다음과 같은 추가적인 이점을 제공한다. 어디든지 프로젝트를 실행시킬 수 있다 의존성을 패키지처럼 관리할 수 있게 되고, pip install yourproject.whl 명령만 간단하게 실행시켜 모든 의존성을 한 번에 다운 가능하다. 테스트 도구는 개발 환경과 분리된 별도의 환경을 생성할 수 있다. Describe the Project 프로젝트 pyproject.toml 파일은 프로젝트와 프로젝트 파일들이 어떻게 빌드되는지 서술한..
이제 배웠던 것을 토대로 blog의 blueprint를 구현하자. The Blueprint # flaskr/blog.py from flask import ( Blueprint ) bp = Blueprint('blog', __name__) 어플리케이션을 시작할때 __init__()에서 청사진을 등록하자. # flaskr/__init__.py def create_app(): app = .. # omitted from . import blog app.register_blueprint(blog.bp) app.add_url_rule('/', endpoint='index') return app app_url_rule이 생소할 수 있는데 /로 들어온 것은 index의 endpoint로 여기겠다는 의미이다. Index..
이전에 login, logout, register의 view를 만들었다. 하지만 이는 브라우저에서 작동을 하지 않는데 그 이유는 render_template()을 통해 html을 보내줘야 하는데, 해당 template이 없기 때문이다. 따라서 이번엔 template을 만들어서 직접 브라우저에 띄울 것이다. 이런 정적 template은 보통 templates 디렉터리에 저장되어지고, 이 템플릿들은 수신 받은 데이터를 통해 렌더링 될 최종 문서를 생성한다. Flask의 Jinja 템플릿 라이브러리를 사용하여 생성할 수 있다. Jinja는 첫 intro에서도 말했다시피 HTML 템플릿으로 렌더링 되는 모든 데이터를 "자동 이스케이프" 하도록 구성된다. 이는 사용자 입력이 안전한지 자동으로 체크해준다는 것이다...
view 함수들은 전부 어플리케이션에 대한. 요청에 응답하기 위한 코드인데, Flask는 패턴을 사용해 들어오는 요청 URL을 처리해야하는 뷰와 일치시킨다. Create a Blueprint 블루프린트는 뷰 또는 관련된 코드 그룹을 구성하는 방법인데, 뷰와 그런 코드들을 애플리케이션에 직접 등록하는 대신 블루프린트에 등록한다. 그런 다음 팩토리 기능에서 사용할 수 있게 되면 청사진이 애플리케이션에 등록되게 된다. 여기에는 두 개의 청사진이 있는데, 하나는 인증 기능용이고 다른 하나는 블로그 게시물 기능용이다. 각 청사진의 코드는 별도의 모듈에 들어가게 된다. # flaskr/auth.py from flask import ( Blueprint, flash, g, redirect, render_templat..
flask 어플리케이션은 SQLite 데이터베이스를 사용하고, user의 정보나 posts들을 저장할 수 있도록 할 수 있다. 기본적으로 python에선 sqlite3 모듈에 SQLite 데이터베이스에 대한 유용한 함수들이 내장되어 있기 때문에 그것을 사용하면 된다. 또한 SQLite의 장점으로는 편리하다는 것이다. database 서버를 따로 분리시키지 않고, 세팅도 따로 해줄 필요가 없기 때문이다. 하지만 동시적인 request를 받았을때 write되는 과정에서 sequential하게 쓰기 때문에 느리다는 것이다. 하지만 이는 사용자가 많을 때의 얘기이며, 자기가 구현하고자 하는 상황에 맞게 구현시키면 된다. 하지만 유저가 많을 경우에는 다른 데이터베이스 서버를 사용하여 구분하는 것이 좋다. Conn..
지금까지 파일 방식으로 서버 어플리케이션을 실행했다면 이번엔 directory를 통해 실행시켜보자. 이를 통해 얻을 수 있는 장점은 다음과 같다. 모듈 분리 - 각각의 모듈이 하는 일이 뚜렷해짐. 이렇게 하면 Flask application instance를 실행시키는 모듈을 따로 만든 샘이 되기 때문 프로젝트 확장성 - 위와 비슷한 맥락이지만, 모듈화하여 관리하면 확장성이 좋아짐. 관리가 쉬우니까. import os from flask import Flask def create_app(test_config=None): app = Flask(__name__, instance_relative_config=True) app.config.from_mapping( SECRET_KEY='dev', DATABASE..
간단한 블로그를 만드는 실습을 한다. 나는 github에 올리고, 로컬 환경인 pycharm으로 실습을 했다. https://github.com/seonghun120614/flask-tutorial GitHub - seonghun120614/flask-tutorial: Flask Tutorial Flask Tutorial. Contribute to seonghun120614/flask-tutorial development by creating an account on GitHub. github.com 과정은 위를 참고하길 바란다. 아래와 같이 flask-tutorial의 프로젝트를 생성했다. 다음으로 프로젝트 간의 패키지들, 버전들이 충돌되지 않도록 가상환경에서 실행하도록 한다. python3 -m ve..
웹서버 생성 이제 웹서버를 열어야 하는데 main.py에서 다음을 입력하자. (flask.py 로 이름을 지으시면 안됩니다.) from flask import Flask app = Flask(__name__) @app.route("/") def hello_world(): return "Hello, World!" Flask 클래스는 WSGI 어플리케이션의 인스턴스를 반환시키는 클래스이다. 이제 이 서버에 route() 데코레이터를 통해 시그널을 걸어주고, 이는 URL("/")이 함수를 실행시키도록 시그널을 걸어준 것이다. 해당 시그널이 들어오면 hello_world()가 실행되고 반환된 값(HTML content)을 서버 인스턴스인 app이 HTTP 프로토콜을 사용하여 네트워크로 보낸다. 웹서버 구동 이제..
https://flask.palletsprojects.com/ Welcome to Flask — Flask Documentation (3.0.x) flask.palletsprojects.com 웹 서버 구축을 위한 Flask 백엔드 프레임워크를 살펴보자. 사전 지식 웹서버는 클라이언트와의 상호작용으로 웹이라는 정보를 제공해주는 서비스를 하는 놈이다. 네트워크에서 서로 연결이 되어 있고 클라이언트가 올바른 프로토콜, 아이피, 포트, 경로를 설정하여 request를 주고 요청 받은 서버는 response로 HTML을 전달해준다. 기본적으로 이 구조를 이루기 때문에 웹서버는 데이터에 맞는 프로토콜(HTTP)을 응답을 생성한다. 생성된 응답은 네트워크로 보내지게 되며, 네트워크 장비가 TCP/IP 프로토콜을 사..