일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Inheritance
- 리눅스 마스터 1급
- Class
- selenium
- X윈도우
- dbms
- Entity Set
- Java
- X.org
- 자바
- Polymolphism
- systemd
- preprocessing
- Entity
- 리눅스
- Unity
- OOP
- 백준
- Mac
- spring
- Operator
- Binary Search
- External Scheme
- 셀레니움
- Physical Scheme
- python
- Reference Type
- descriptive statistics
- BFS
- literal
- Today
- Total
목록2024/02 (15)
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..
import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedReader; import java.util.StringTokenizer; public class Main { static final BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer st; public static void main(String[] args) throws IOException { String tmp; st = new StringTokenizer(BR.readLine()); int n = Integer.parseInt..
import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.BufferedWriter; import java.util.StringTokenizer; import java.util.Arrays; public class Main { static final BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); static final BufferedWriter BW = new BufferedWriter(new OutputStreamWrite..
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.StringTokenizer; import java.util.HashMap; public class Main { private static final BufferedReader BR = new BufferedReader(new InputStreamReader(System.in)); static final HashMap table = new HashMap(); public static void main(String[] args) throws IOException { StringTokenizer st = new S..
import java.util.Scanner; public class Main { static final Scanner SC = new Scanner(System.in); public static void main(String[] args) { int n = SC.nextInt(), k = SC.nextInt(), result, cnt = 0, tmp = 0; String binaryNumber = Integer.toBinaryString(n); if(n
flask 어플리케이션은 SQLite 데이터베이스를 사용하고, user의 정보나 posts들을 저장할 수 있도록 할 수 있다. 기본적으로 python에선 sqlite3 모듈에 SQLite 데이터베이스에 대한 유용한 함수들이 내장되어 있기 때문에 그것을 사용하면 된다. 또한 SQLite의 장점으로는 편리하다는 것이다. database 서버를 따로 분리시키지 않고, 세팅도 따로 해줄 필요가 없기 때문이다. 하지만 동시적인 request를 받았을때 write되는 과정에서 sequential하게 쓰기 때문에 느리다는 것이다. 하지만 이는 사용자가 많을 때의 얘기이며, 자기가 구현하고자 하는 상황에 맞게 구현시키면 된다. 하지만 유저가 많을 경우에는 다른 데이터베이스 서버를 사용하여 구분하는 것이 좋다. Conn..