python 프레임 워 크 flask 입문 루트 및 간단 한 실현 방법

경로
쉽게 말 하면 길 은 url 에서 함수 까지 의 맵 입 니 다.경로 규칙 을 통 해 url 이 지정 한 함수 로 처리 하고 해석 할 수 있 습 니 다.
현재 웹 시스템 의 URL 은 사용자 정의 가 가능 하 다 는 것 을 잘 알 고 있 습 니 다.즉,url 과 구체 적 인 업무 컨트롤 러 가 연결 되 어 있 는 것 을 지정 할 수 있 습 니 다.이것 은 바로 경로 로 이 루어 진 것 입 니 다.
flask 에 루트 처리 모듈 이 통합 되 어 있 습 니 다.루트 장식 기 를 간단하게 사용 하면 루트 매 칭 을 실현 할 수 있 습 니 다.

@app.route('/')
def index():
 return 'Index Page'

@app.route('/hello')
def hello():
 return 'Hello, World'
위의 예 에서,우리 가 브 라 우 저 를 방문 할 때,예 를 들 어 입력http://127.0.0.1/을 입력 하면'index page'로 되 돌아 갑 니 다.http://127.0.0.1/hello '헬 로 월 드'로 돌아 가 는 것 이 경로 의 기본 적 인 사용 이다.

@app.route('/user/<username>')
def show_user(username):
 return username

@app.route('/post/<int:post_id>')
def show_post(post_id):
 return 'Post %d' % post_id

@app.route('/path/<path:subpath>')
def show_subpath(subpath):
 # show the subpath after /path/
 return 'Subpath %s' % escape(subpath)
위의 예 를 들 어 우 리 는 flask 의 경로 가 매개 변수 와 일치 하 는 것 을 알 수 있 습 니 다.예 를 들 어 우 리 는<>를 통 해 매개 변 수 를 얻 을 수 있 고 문장의 id 를 얻 을 수 있 으 며 사용자 이름 등 매개 변수 정 보 를 얻 을 수 있 습 니 다.즉,우 리 는 경로 매 칭 을 통 해 지정 한 url 을 처리 할 수 있 습 니 다.
url 의 사선(/)에 대한 처 리 는 경로 에서 사선 을 정의 할 때 사선 이 없 는 url 에 접근 할 때 자동 으로 사선 을 추가 합 니 다.경로 에서 사선 이 정의 되 지 않 았 을 때 사선 이 있 을 때 404 를 알려 줍 니 다.

@app.route('/test/')
#     http://127.0.0.1/test   ,     http://127.0.0.1/test/
def test():
  return 'test'

@app.route('slashes')
#     http://127.0.0.1/slashes/   ,   404,       
def slashes():
 return 'slashes'
다음은 Python Flask 프레임 워 크 의 경로 가 간단하게 이 루어 집 니 다.
혹시 Flask 프레임 이 라 고 들 어 보 셨 나 요?너 도 사용 해 봤 을 지 모 르 지만 아주 잘 사용 했다.그러나 브 라 우 저 에 경로 주 소 를 입력 하고 쓴 페이지 로 이동 하면 Flask 에서 어떻게 이 루어 졌 는 지 궁금 하 십 니까?잘 모 르 시 면 내 려 다 보 세 요~
Flask 데모 코드

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
 return '<a href="/home">Hello World!</a>'
@app.route("/home")
def home():
 return "     "
@app.route("/login")
def login():
 return "     "

if __name__ == '__main__':
 app.run(debug=True)
브 라 우 저 주소 에 경 로 를 입력 하면 서로 다른 보기 함수 에 들 어 갑 니 다.
1.입력 경 로 는"/"입 니 다.

2.입력 경로:"/home"

3.입력 경로:"/login"

신기 하지 않 아 요?어떻게 이 루어 졌 는 지 보 여 주세요!
간단하게 실현 하 다.

"""
 Flask       
 map: {"/home":"home", "/login":"login", ...}
"""
map = dict()

def route(path):
 def decorator(f):
  print(path, f.__name__, "<-----------start---------->")
  map[path] = f.__name__
  return f
 return decorator


class TestFlaskRoute:

 def __init__(self, path):
  self.path = path

 def find_url(self):
  try:
   getattr(TestFlaskRoute, map.get(self.path)).__call__(self)
  except:
   print("\033[031m       ! \033[0m ")

 @route("/login")
 def login(self, *args, **kwargs):
  print("\033[036m      ! \033[0m")
  pass

 @route("/home")
 def home(self, *args, **kwargs):
  print("\033[036m      ! \033[0m")
  pass

 @route("/")
 def index(self, *args, **kwargs):
  print("\033[036m Hello World! \033[0m")
  pass

 @route("/call")
 def phone(self, *args, **kwargs):
  print("\033[036m    ", self.path, "! \033[0m")
  pass

if __name__ == '__main__':
 while True:
  url = input("   URL  :")
  app = TestFlaskRoute(url)
  app.find_url()
여기 서 우 리 는 아 날로 그 브 라 우 저 입력 방식 으로 완성 합 니 다."/"를 입력 하면 해당 경로 에서 index()를 찾 아 실행 합 니 다."/home"을 입력 하면 해당 경로 에서 home()을 찾 아 실행 합 니 다."/login"을 입력 하면 대응 하 는 경 로 를 찾 아 login()을 실행 합 니 다.어떻게 하면 신기 하지 않 습 니까?Flask 같 지 않 습 니까?사실 Flask 는 이런 사고방식 으로 이 루어 졌 다.
효과:

해석 실현(3 단계)
a.프로그램 이 시 작 될 때 route()라 는 장식 기 를 먼저 실 행 했 고 모든 경로,대응 함 수 를 가 져 와 map 라 는 사전 에 존재 합 니 다.경 로 를 key 로 하고 대응 함수 이름 은 value 입 니 다.(주:Flask 에 서 는 Route 류 로 이 정 보 를 저장 하기 때문에 차이 가 있 습 니 다~)
b.경 로 를 입력 하거나 브 라 우 저 에 경 로 를 입력 하면 key 형식 으로 map 사전 에 일치 하고 value(함수 명)를 꺼 냅 니 다.
c.value 를 얻 으 면 getattr()를 통 해 함수 주 소 를 얻 은 다음 내장call__()방법,이 함수 실행
총결산
python 프레임 워 크 flask 입문 경로 및 간단 한 실현 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python 프레임 워 크 flask 경로 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기