웹 개발 | 당신만의 앱을 신속하게 개발
1.1 초기화
모든 flask 응용 프로그램은 응용 실례를 만들어야 합니다.웹 서버는 웹 서버 인터페이스 (WSGI, 웹 서버 gateway interface) 라는 프로토콜을 사용하여 클라이언트로부터 받은 모든 요청을 이 대상에게 전달합니다.응용 인스턴스는 flask 클래스의 객체이며 일반적으로 다음 코드로 작성됩니다.
from flask import Flask
app = Flask(__name__)
Flask 클래스의 구조 함수는 주 모듈이나 패키지의 이름을 적용하기 위해 지정해야 하는 매개 변수만 있습니다.
from flask import Flask
print(__name__)
실행 결과
__main__
프로그램마다 일반적으로 프로그램의 메인 입구가 있다
if __name__ == "__main__"
그래서 왜 프린트된 결과인지 아실 거예요.
__main__
사실 메인 모듈이나 가방의 이름이에요.
1.2 라우팅 및 뷰 함수
클라이언트(예를 들어 웹 브라우저)는 요청을 웹 브라우저에 보내고 웹 브라우저는flask 응용 프로그램에 요청을 보낸다.응용 실례는 모든 URL에 대한 요청이 Python 함수에 어떤 코드를 실행해야 하는지 알아야 한다.url과 함수 간의 관계를 처리하는 프로그램을 루트라고 한다
flask 응용 프로그램에서 루트를 정의하는 가장 간편한 방법은 응용 실례가 제공하는 app를 사용하는 것이다.route 장식기, 다음 코드는 장식기를 사용하여 경로를 설명하는 방법을 설명합니다.
@app.route('/')
def index():
return 'Hello world'
위의 프로그램은 index () 함수를 응용 루트 주소의 처리 프로그램으로 등록합니다.
index () 는 입국 요청을 처리하는 함수를 보기 함수라고 하는데, 도메인 이름에 www.example을 배치하면 적용됩니다.com의 서버에서 브라우저에서 이 사이트를 방문하면 서버가 index() 함수를 실행하도록 촉발합니다. 이 함수의 반환값은 바로 응답값입니다.
매번 사이트를 방문할 때마다 사이트의 주소가 바뀌는 것을 발견할 수 있다. Flask는 이런 형식의 URL을 지원하는데 앱에서만 가능하다.route 장식기에서 특수한 문법을 사용하면 실현할 수 있습니다.
@app.route('/user/')
def index(name):
return 'Hello, {}'.format(name)
라우팅 URL의 꺾쇠 괄호 안에 들어 있는 내용은 동적 부분입니다.이 함수를 호출할 때flask는 동적 부분을 매개 변수로 삼아 index () 함수로 전송합니다.
루트의 동적 부분은 기본적으로 문자열입니다. 물론 다른 유형도 가능합니다. 예를 들어
/user/
동적 세션 id가 정수인 URL만 일치합니다. 예를 들어: /user/123
1.3 완전한 응용 프로그램
flasky 폴더에 hello를 만들어야 합니다.py 스크립트, 응용 실례, 루트, 보기 함수를 정의합니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello world'
1.4 웹 개발 서버
flask는 자체 웹 서버를 사용하고
flask run
명령을 통해 시작합니다.이 명령은 FLASKAPP 환경 변수에 지정된 Python 스크립트에서 응용 인스턴스를 찾습니다.0부터 1까지 flask에서 쓴 Hello를 배울 수 있는 손잡이를 시작하고 싶다면.py 응용 프로그램은 먼저 만들어진 가상 환경이 활성화되었고flask가 설치되어 있는지 확인합니다.Linux와 macOS 시작 다음 명령으로 웹 서버 시작
(venv) $ export FLASK_APP=hello.py
(venv) $ flask run
서버가 시작되면 폴링, 처리 요청이 시작됩니다.서버를 중지하려면
Ctrl+C
키를 누르고 폴링을 중지해야 합니다.서버가 실행될 때 웹 브라우저의 주소 표시줄에 입력하십시오http://127.0.0.1:5000
URL 뒤에 내용을 입력하면 어떻게 처리해야 할지 모르고 오류 코드 404를 브라우저에 되돌려줍니다. 이 오류는 존재하지 않는 웹 페이지를 방문할 때 볼 수 있습니다.
1.5 동적 라우팅
브라우저에서 이 동적 루트에 접근하면 url에서 제공하는 이름을 포함하는 개성화된 정보를 볼 수 있습니다
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello world'
@app.route('/user/')
def user(name):
return 'hello, {} !'.format(name)
브라우저에서 입력http://127.0.0.1:5000/user/jack
1.6 디버그 모드
flask 응용 프로그램은 디버그 모드에서 실행할 수 있으며, 개발 서버는 기본적으로 두 개의 편리한 도구, 리셋기와 디버그를 불러옵니다.
리셋을 시작하면flask는 프로젝트의 모든 원본 파일을 감시하고 변동이 발견되면 서버를 다시 시작합니다.개발 과정에서 부팅 리셋기와 서버를 실행하는 것은 특히 편리하다. 원본 파일을 수정할 때마다 서버가 리셋되어 변경 사항이 적용되기 때문이다.
디버거는 웹 기반 도구로, 응용 프로그램이 이상을 처리할 때 브라우저에 저장됩니다.이 때 웹 브라우저는 인터랙티브 창고 추적이 되어 코드를 심사할 수 있습니다.
디버그 모드는 기본적으로 비활성화되어 있습니다.활성화하려면 flask run 명령을 실행하기 전에 FLASK 설정DEBUG = 환경 변수
(venv) $ export FLASK_APP=hello.py
(venv) $ export FLASK_DEBUG=
(venv) $ flask run
==운영 서버에서 디버깅 모드를 시작하지 마십시오.클라이언트는 디버거를 통해 원격 코드 실행을 요청할 수 있기 때문에 생산 서버가 공격을 받을 수 있습니다!!==
최후
나는 갉아먹는 군이다. 네가 아는 것이 많을수록, 네가 모르는 것이 많을수록, 더 많은 재미있는 내용을 우리 다음에 다시 만나자!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.